On Mon, 8 Mar 2010 11:31:52 -0800 Thomas DuBuisson (TD) wrote:
TD> > A CPU that supports VMX or SVM provides 4 host rings and 4 guest rings. TD> > They are used as follows: host/ring0=NOVA microhypervisor, TD> > host/ring3=NOVA user-level environment, guest/ring0=Linux kernel, TD> > guest/ring3=Linux apps. TD> TD> Interesting that it requires SVM/VMX. Seeing as there are good TD> performance reasons for Linux VirtIO and other cooperative TD> para-virtualization schemes I'm wondering what the reasoning is for TD> making a new hypervisor that doesn't support such a feature. I notice TD> the NOVA page is lacking in an FAQ - could someone here educate me? TD> Is this just a "you want performance? Use our ABI!" deal?
If you want to paravirtualize I/O, then you can do so in NOVA without even modifying the hypervisor. All you need is extend the device emulation in the user-level VMM so that it comprehends whatever VirtIO interface is used by your favorite guest OS.
However, NOVA does not support paravirtualized guest operating systems that use ring compression or ring deprivileging to be able to run in user mode on top of something else (e.g., L4Linux) -- which is presumably what Marcel inquired about.
I don't get the part about the ABI. An unmodified guest operating system does not care about the hypervisor ABI at all.
Cheers,
- Udo