From: Anthony Liguori <aliguori@us.ibm.com>
To: "Nakajima, Jun" <jun.nakajima@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>,
virtualization <virtualization@lists.osdl.org>,
Roland McGrath <roland@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Jan Beulich <jbeulich@novell.com>,
linux-kernel@vger.kernel.org
Subject: Re: Xen & VMI?
Date: Tue, 06 Mar 2007 11:32:06 -0600 [thread overview]
Message-ID: <45EDA596.3020607@us.ibm.com> (raw)
In-Reply-To: <8FFF7E42E93CC646B632AB40643802A80229779B@scsmsx412.amr.corp.intel.com>
Nakajima, Jun wrote:
> Anthony Liguori wrote:
>
>> Ingo Molnar wrote:
>>
>>> * Gerd Hoffmann <kraxel@suse.de> wrote:
>>>
>>>
>>>>>> So in the end you would still have two different hypervisor ABI's,
>>>>>> the VMI ROM just hides that.
>>>>>>
>>>>> oh, but that way i have cleverly pushed the problem out of Linux
>>>>> and into the VMI-ROM's domain ;) Which is all i care about.
>>>>>
>>>> Fine, so lets move kvm paravirtualitzation into vmi too (proof of
>>>> concept code by Anthony Liguori exists) and kill one more item on
>>>> the (linux) QA test matrix? (just following your arguments, not
>>>> that I'm confident it would actually help reducing QA effort).
>>>>
>>> yes - although obviously a KVM Linux guest does not need such an
>>> interface - but it's a nice proof of concept to integrate other guest
>>> OSs into KVM.
>>>
>> I disagree that a KVM Linux guest does not benefit from VMI. Right
>> now, your KVM paravirt interface only covers CR3 target caching and
>> apic enhancements (neither of which I believe have made it into
>> 2.6.21). Inevitably, things like MMU batching will be added.
>>
>
> I think a KVM Linux would benefit more from paravirt ops, rather than
> VMI.
Functionally speaking, the only difference between using VMI and
paravirt_ops is that with VMI you redirect the paravirt_ops to a ROM
area. This has the following effects:
1) you cannot call back into Linux from the op implementation
2) you can change the implementation of the op w/o rebuilding the kernel
1 & 2 are trade-offs. For everything that KVM can do wrt
paravirtualization, there really isn't a need for #1 at the moment. Xen
is much more challenging to do with VMI as there are a lot of instances
where #1 is quite useful. I think you pretty much have to target
paravirt_ops for Xen.
> The higher-level interface such as the one in Xen, espeically for
> I/O, interrupt controllers, timer, SMP, etc. actually simplifies the
> implementation of the VMM,
Right, but those higher-level interfaces can certainly be implemented
within the context of a VMI rom. For instance, VMI already defines a
paravirtual timer. In the case of interrupt control, it just provides
hooks for APIC reads/writes with the assumption (presumably) that the
ROM will implement APIC emulation and bridge to whatever the hypervisor
abstraction is.
> and improve performance of the guest. Even
> for MMU, direct page tables, for example, would work better for
> hardware-based virtualization because the processor can use the native
> page tables.
>
Direct paging is a whole other can of worms. Fortunately, EPT and NPT
will eliminate the need to worry about this in the future for things
like KVM/HVM :-)
Regards,
Anthony Liguori
>> Using paravirt_ops, this is going to require new kernels for the
>> guests. Every new paravirtualization feature will require a new
>> guest kernel. With VMI, one can add these features to any 2.6.21+
>> guest by just modifying the ROM (assuming a newer host). Some
>> features will require new VMI entry points but quite a lot will fall
>> under the current entry points.
>>
>> Of all the hypervisors, KVM is the easiest to use VMI with. QEMU
>> already supports option ROM loading and Zach just made some changes to
>> allow a native ROM to be implemented very easily.
>>
>> If we're going to use VMI for anything other than VMware, it seems to
>> be that KVM should be what we use it for.
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>
>>> Ingo
>>>
>
> Jun
> ---
> Intel Open Source Technology Center
>
>
next prev parent reply other threads:[~2007-03-06 17:32 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070305120631.GA14105@elte.hu>
2007-03-05 13:28 ` [patch] paravirt: VDSO page is essential Rusty Russell
2007-03-05 13:38 ` Ingo Molnar
2007-03-05 14:34 ` Andi Kleen
2007-03-05 13:48 ` Ingo Molnar
2007-03-05 20:11 ` Zachary Amsden
2007-03-05 20:16 ` Andi Kleen
2007-03-05 20:33 ` Zachary Amsden
2007-03-05 20:19 ` Ingo Molnar
2007-03-05 20:42 ` Zachary Amsden
2007-03-06 0:57 ` Rusty Russell
2007-03-06 1:03 ` Zachary Amsden
2007-03-06 1:11 ` Rusty Russell
2007-03-06 1:14 ` Jeremy Fitzhardinge
2007-03-06 1:51 ` Zachary Amsden
2007-03-06 1:53 ` Jeremy Fitzhardinge
2007-03-06 8:19 ` Xen & VMI? Ingo Molnar
2007-03-06 8:37 ` Gerd Hoffmann
2007-03-06 8:48 ` Zachary Amsden
2007-03-06 8:52 ` Ingo Molnar
2007-03-06 9:03 ` Zachary Amsden
2007-03-06 9:10 ` Ingo Molnar
2007-03-06 9:15 ` Gerd Hoffmann
2007-03-06 9:34 ` Ingo Molnar
2007-03-06 10:15 ` Gerd Hoffmann
2007-03-06 10:26 ` Ingo Molnar
2007-03-06 11:04 ` Gerd Hoffmann
2007-03-06 11:59 ` Ingo Molnar
2007-03-06 12:34 ` Gerd Hoffmann
2007-03-06 15:03 ` Anthony Liguori
2007-03-06 17:17 ` Nakajima, Jun
2007-03-06 17:32 ` Anthony Liguori [this message]
2007-03-06 20:37 ` Ingo Molnar
2007-03-06 21:02 ` Jeremy Fitzhardinge
2007-03-06 21:11 ` Ingo Molnar
2007-03-06 21:13 ` Jeremy Fitzhardinge
2007-03-06 21:20 ` Ingo Molnar
2007-03-06 21:46 ` Jeremy Fitzhardinge
2007-03-06 21:35 ` Nakajima, Jun
2007-03-07 0:44 ` Rusty Russell
2007-03-07 0:54 ` Anthony Liguori
2007-03-07 3:06 ` Zachary Amsden
2007-03-07 8:15 ` Ingo Molnar
2007-03-07 9:17 ` Zachary Amsden
2007-03-07 11:15 ` Thomas Gleixner
2007-03-07 19:14 ` Dan Hecht
2007-03-06 16:27 ` Jeremy Fitzhardinge
2007-03-06 17:11 ` Ingo Molnar
2007-03-06 17:33 ` Jeremy Fitzhardinge
2007-03-07 2:16 ` Zachary Amsden
2007-03-06 9:55 ` Avi Kivity
2007-03-06 10:23 ` Gerd Hoffmann
2007-03-06 10:31 ` Ingo Molnar
2007-03-06 19:46 ` Chris Wright
2007-03-06 20:30 ` Ingo Molnar
2007-03-06 20:53 ` Chris Wright
2007-03-06 21:03 ` Ingo Molnar
2007-03-06 21:28 ` Chris Wright
2007-03-07 2:35 ` Zachary Amsden
2007-03-06 9:07 ` Jeremy Fitzhardinge
2007-03-06 9:26 ` Ingo Molnar
2007-03-06 16:42 ` Jeremy Fitzhardinge
2007-03-06 17:18 ` Ingo Molnar
2007-03-06 18:04 ` Jeremy Fitzhardinge
2007-03-06 7:35 ` [patch] paravirt: VDSO page is essential Ingo Molnar
2007-03-06 7:42 ` Zachary Amsden
2007-03-06 7:50 ` Ingo Molnar
2007-03-06 18:48 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45EDA596.3020607@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=jbeulich@novell.com \
--cc=jun.nakajima@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=roland@redhat.com \
--cc=torvalds@linux-foundation.org \
--cc=virtualization@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).