Rusty Russell wrote:
Hi all,
Just finished my prototype of inter-guest virtio, using networking as an
example. Each guest mmaps the other's address space and uses a FIFO for
notifications.
There are two issues with this approach. The first is that neither guest
can change its mappings. See patch 1.
Avi mentioned that with MMU notifiers, it may be possible to introduce a
new kernel mechanism whereas you could map an arbitrary region of one
process's memory into another process. This would address this problem
quite nicely.
The second is that our feature
configuration is "host presents, guest chooses" which breaks down when we
don't know the capabilities of each guest. In particular, TSO capability for
networking.
There are three possible solutions:
1) Just offer the lowest common denominator to both sides (ie. no features).
This is what I do with lguest in these patches.
2) Offer something and handle the case where one Guest accepts and another
doesn't by emulating it. ie. de-TSO the packets manually.
3) "Hot unplug" the device from the guest which asks for the greater features,
then re-add it offering less features. Requires hotplug in the guest OS.
4) Add a feature negotiation feature. The feature that gets set is the
"feature negotiate" feature. If a guest doesn't support feature
negotiation, you end up with the least-common denominator (no
features). If both guests support feature negotiation, you can then add
something new to determine the true common subset.
I haven't tuned or even benchmarked these patches, but it pings!
Very nice! It's particularly cool that it was possible entirely in
userspace.
Regards,
Anthony Liguori
Rusty.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
_______________________________________________
Lguest mailing list
Lguest@ozlabs.org
https://ozlabs.org/mailman/listinfo/lguest