[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