Re: [PATCH v10 1/1] virtio_console: Add support for multiple portsfor generic guest and host communication

From: Anthony Liguori
Date: Fri Nov 06 2009 - 09:32:25 EST


Christian Borntraeger wrote:
Fundamentally speaking, right now, virtio-console is a single stream
that acts as an interactive terminal. What we're looking to add here is
to support multiple terminals that can be enumerated in a rationale way.

Right, that is a point where I disagree. The original purpose and intent of the multiple port thing was to have a generic guest/host comm channels and *NOT* to have multiple console devices. Having multiple console devices is just a fall-
out of the current implementation.

This is part of what makes this series so difficult. As a generic guest/host communications channel, this series does not at all meet reasonable expectations. It makes no attempt to deal with things like live migration. It can at best be described as a hack.

The whole thing's a mess because it's never been thought through properly which is probably because the actual consumer of it has not been released publicly.

I've always advocated that this use case would be better served as a _userspace_ interface that implements a protocol on top of an arbitrary transport. It could be a network socket, a virtio device (even virtio-console unmodified), a real serial device, etc.

You can do multiplexing, connect/disconnect notification, etc. all as elements of a streaming protocol. Throwing all of these channel semantics coupled tightly with the transport and then trying to make a kernel interface be what's the supported user interface is really just asking for trouble.

--
Regards,

Anthony Liguori

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/