Re: [PATCH] virtio-ring: Use threshold for switching to indirectdescriptors

From: Avi Kivity
Date: Sun Dec 04 2011 - 10:17:11 EST


On 12/04/2011 05:11 PM, Michael S. Tsirkin wrote:
> > There's also the used ring, but that's a
> > mistake if you have out of order completion. We should have used copying.
>
> Seems unrelated... unless you want used to be written into
> descriptor ring itself?

The avail/used rings are in addition to the regular ring, no? If you
copy descriptors, then it goes away.

> But, I don't really know why does virtio ring insist on
> making the 3 buffers (avail/used/descriptor)
> physically contigious. Rusty?

Let's drop them instead.

>
> > 16kB worth of descriptors is 1024 entries. With 4kB buffers, that's 4MB
> > worth of data, or 4 ms at 10GbE line speed. With 1500 byte buffers it's
> > just 1.5 ms. In any case I think it's sufficient.
>
> Right. So I think that without indirect, we waste about 3 entries
> per packet for virtio header and transport etc headers.

That does suck. Are there issues in increasing the ring size? Or
making it discontiguous?

Can you take a peek at how Xen manages its rings? They have the same
problems we do.

--
error compiling committee.c: too many arguments to function

--
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/