This patch series represents the state of my current work w.r.t. PV and KVM.
It is still a work in progress and so far has only been compile tested (though
earlier versions had a test harness that ironed many bugs out).  I submit it
now as an RFC on the directions I am taking and to solicit feedback.  Note
that it is based on Dor's PV branch, not kvm.git master.  

As a brief synopsis, the series implements the following:

*) A generic shared-memory based IO subsystem called "IOQ".  This is an
 iterator based interface, with an asymmetric allocation scheme conducive to
 virtualization constraints.  Its designed to allow for "zero copy" (yeah, I
 know its not really ;) type buffer passing between host and guest, including
 deferred pointer reaping.  It also allows for bi-directional NAPI which can
 mitigate both guest interrupts as well as host-hypercalls on active queues.   

*) A generic paravirtual-bus abstraction (called PVBUS) for
 discovery/configuration of PV devices.  This allows backend driver writers to
 simply plug into the system without mucking with ACPI, Bochs, PCI, and other
 legacy related items.  It also allows guest drivers to dynamically find,
 query, and connect to backend devices in a hypervisor and system neutral way.
 This is helpful, for instance, for s390 that from what I understand doesn't
 have PCI. 

*) An example PV network driver called "IOQNET".  Note that the guest side of
 this driver is VMM independent since it sits on top of the IOQ/PVBUS
 interfaces. 

I started this work a while back before I knew about Rusty's VirtIO proposals.
I had recently contemplated distilling the original interface into an
implementation of virtio, but there was some key differences in approach
taken.  Rather than just throw those differences away, I figured I would
submit it "as is" to foster discussion.  I would ideally like to see a
convergence between IOQ and VirtIO with Rusty's blessing.  So Rusty: If you
see anything that I did that looks interesting to you, I would like to work
with you on bringing some of those ideas into a VirtIO implementation for
KVM. 

I would like to thank all of you out there who guided me along the way.  In
particular, Hollis, Anthony, Dor and Rusty were most helpful in helping me to
understand how to go about building something like this. 

-Greg


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to