[Lguest] [patch 37/43] lguest: Virtio helper routines for a descriptor ringbuffer implementation
Avi Kivity
avi at qumranet.com
Mon Oct 1 03:03:07 EST 2007
rusty at rustcorp.com.au wrote:
> These helper routines supply most of the virtqueue_ops for hypervisors
> which want to use a ring for virtio. Unlike the previous lguest
> implementation:
>
> 1) The rings are variable sized (2^n-1 elements).
> 2) They have an unfortunate limit of 65535 bytes per sg element.
> 3) The page numbers are always 64 bit (PAE anyone?)
> 4) They no longer place used[] on a separate page, just a separate
> cacheline.
> 5) We do a modulo on a variable. We could be tricky if we cared.
> 6) Interrupts and notifies are suppressed using flags within the rings.
>
> Users need only get the ring pages and provide a notify hook (KVM
> wants the guest to allocate the rings, lguest does it sanely).
>
This fixes an ABI. I don't think we have enough experience with this to
set an ABI for 2.6.24. I also owe you a patch for scatter/gather
indirection instead of chaining.
It is okay to put this in as long as 2.6.24 drivers won't try to talk to
2.6.25+ hosts (which presumably will have a stable ABI). We could do
this by having "stable API" feature bit which the new drivers will
require, and an "2.6.24 ABI" feature bit which the current drivers will
require, but the whole config interface itself is too new for this in my
opinion.
--
error compiling committee.c: too many arguments to function
More information about the Lguest
mailing list