From: Anthony Liguori <aliguori@us.ibm.com>
To: "Nakajima, Jun" <jun.nakajima@intel.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
kvm-devel@lists.sourceforge.net, Avi Kivity <avi@qumranet.com>,
linux-kernel@vger.kernel.org
Subject: Re: [kvm-devel] [PATCH] Refactor hypercall infrastructure
Date: Sat, 15 Sep 2007 13:23:55 -0500 [thread overview]
Message-ID: <46EC233B.5010209@us.ibm.com> (raw)
In-Reply-To: <97D612E30E1F88419025B06CB4CF1BE10379EDA0@scsmsx412.amr.corp.intel.com>
Nakajima, Jun wrote:
> Jeremy Fitzhardinge wrote:
>
>> Nakajima, Jun wrote:
>>
>>> The hypervisor detection machanism is generic, and the signature
>>> returned is implentation specific. Having a list of all hypervisor
>>> signatures sounds fine to me as we are detecting vendor-specific
>>> processor(s) in the native. And I don't expect the list is large.
>>>
>>>
>>>
>> I'm confused about what you're proposing. I was thinking that a
>>
> kernel
>
>> looking for the generic hypervisor interface would check for a
>>
> specific
>
>> signature at some cpuid leaf, and then go about using it from there.
>>
> If
>
>> not, how does is it supposed to detect the generic hypervisor
>>
> interface?
>
>> J
>>
>
> I'm suggesting that we use CPUID.0x4000000Y (Y: TBD, e.g. 6) for Linux
> paravirtualization. The ebx, ecx and edx return the Linux
> paravirtualization features available on that hypervisor. Those features
> are defined architecturally (not VMM specific).
>
> Like CPUID.0, CPUID.0x40000000 is used to detect the hypervisor with the
> vendor identification string returned in ebx, edx, and ecx (as we are
> doing in Xen). The eax returns the max leaf (which is 0x40000002 on Xen
> today).
I don't understand the purpose of returning the max leaf. Who is that
information useful for?
I like Jeremy's suggesting of starting with 0x40001000 for KVM. Xen has
an established hypercall interface and that isn't going to change.
However, in the future, if other Operating Systems (like the BSDs)
choose to implement the KVM paravirtualization interface, then that
leaves open the possibility for Xen to also support this interface to
get good performance for those OSes. It's necessary to be able to
support both at once if you wish to support these interfaces without
user interaction.
There's no tangible benefit to us to use 0x40000000. Therefore I'm
inclined to lean toward making things easier for others.
Regards,
Anthony Liguori
> And like CPUID.1, CPUID.0x40000001 returns the version number in
> eax, and each VMM should be able to define a number of VMM-specific
> features available in ebx, ecx, and edx returned (which are reserved,
> i.e. not used in Xen today).
>
> Suppose we knew (i.e. tested) Xen and KVM supported Linux
> paravirtualization, the Linux code does:
> 1. detect Xen or KVM <the list> using CPUID.0x40000000
> 2. Check the version if necessary using CPUID.0x40000001
> 3. Check the Linux paravirtualization features available using
> CPUID.0x4000000Y.
>
> Jun
> ---
> Intel Open Source Technology Center
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> kvm-devel mailing list
> kvm-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>
next prev parent reply other threads:[~2007-09-15 18:24 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-14 19:45 [PATCH] Refactor hypercall infrastructure Anthony Liguori
2007-09-14 20:53 ` Jeremy Fitzhardinge
2007-09-14 21:02 ` [kvm-devel] " Anthony Liguori
2007-09-14 21:20 ` Zachary Amsden
2007-09-14 21:44 ` Anthony Liguori
2007-09-15 3:37 ` Zachary Amsden
2007-09-15 8:08 ` Avi Kivity
2007-09-15 17:33 ` Anthony Liguori
2007-09-14 21:22 ` Jeremy Fitzhardinge
2007-09-14 21:46 ` Anthony Liguori
2007-09-14 21:52 ` Jeremy Fitzhardinge
2007-09-14 22:08 ` Anthony Liguori
2007-09-14 22:40 ` Nakajima, Jun
2007-09-14 23:00 ` Jeremy Fitzhardinge
2007-09-15 0:10 ` Nakajima, Jun
2007-09-15 0:28 ` Jeremy Fitzhardinge
2007-09-15 1:04 ` Nakajima, Jun
2007-09-15 4:53 ` Jeremy Fitzhardinge
2007-09-15 6:11 ` Nakajima, Jun
2007-09-15 18:23 ` Anthony Liguori [this message]
2007-09-17 18:14 ` Nakajima, Jun
2007-09-17 18:27 ` Anthony Liguori
2007-09-17 19:15 ` Jeremy Fitzhardinge
2007-09-17 19:33 ` Anthony Liguori
2007-09-17 19:15 ` Jeremy Fitzhardinge
2007-09-17 20:52 ` Nakajima, Jun
2007-09-15 8:00 ` Avi Kivity
2007-09-15 7:53 ` Avi Kivity
2007-09-15 2:35 ` Rusty Russell
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=46EC233B.5010209@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=avi@qumranet.com \
--cc=jeremy@goop.org \
--cc=jun.nakajima@intel.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.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).