Subject: Re: [PATCH 12/28] virtio: console: Buffer data that comes in from the host

From: Rusty Russell <[email-masked]>
Date: Thu, 3 Dec 2009 09:24:23 +1030

On Wed, 2 Dec 2009 07:54:06 pm Amit Shah wrote:
> On (Wed) Dec 02 2009 [14:14:20], Rusty Russell wrote:
> > On Sat, 28 Nov 2009 05:20:35 pm Amit Shah wrote:
> > > The console could be flooded with data from the host; handle
> > > this situation by buffering the data.
> > 
> > All this complexity makes me really wonder if we should just
> > have the host say the max # ports it will ever use, and just do this
> > really dumbly.  Yes, it's a limitation, but it'd be much simpler.
> 
> As in make sure the max nr ports is less than 255 and have per-port vqs?
> And then the buffering will be done inside the vqs themselves?

Well < 128 (two vqs per port).  The config would say (with a feature bit)
how many vq pairs there are.  If we want expect sparse port numbers, it can
also provide an array mapping the vq pairs to the port number (65535 or
something meaning unused).  In practice I suspect 4 or 8 will be plenty
for now.

That makes hotplugging ports pretty simple: change the array, ping
config_changed.

Or we could abandon numbers and just use the names; I don't mind (we still
need a way to figure out what ports are active I guess, maybe a bitmap in
the config?)

But we get the vq buffering and flow control for free with this approach.

Cheers,
Rusty.