Re: [RFC] CPUID usage for interaction between Hypervisors and Linux.

From: H. Peter Anvin
Date: Wed Oct 01 2008 - 21:29:04 EST


Nakajima, Jun wrote:

All I have seen out of Microsoft only covers CPUID levels 0x40000000
as an vendor identification leaf and 0x40000001 as a "hypervisor
identification leaf", but you might have access to other information.

No, it says "Leaf 0x40000001 as hypervisor vendor-neutral interface identification, which determines the semantics of leaves from 0x40000002 through 0x400000FF." The Leaf 0x40000000 returns vendor identifier signature (i.e. hypervisor identification) and the hypervisor CPUID leaf range, as in the proposal.


In other words, 0x40000002+ is vendor-specific space, based on the hypervisor specified in 0x40000001 (in theory); in practice both 0x40000000:0x40000001 since M$ seem to use clever identifiers as "Hypervisor 1".

This further underscores my belief that using 0x400000xx for anything
"standards-based" at all is utterly futile, and that this space should
be treated as vendor identification and the rest as vendor-specific.
Any hope of creating a standard that's actually usable needs to be
outside this space, e.g. in the 0x40SSSSxx space I proposed earlier.

Actually I'm not sure I'm following your logic. Are you saying using that 0x400000xx for anything "standards-based" is utterly futile because Microsoft said "the range is hypervisor vendor-neutral"? Or you were not sure what they meant there. If we are not clear, we can ask them.


What I'm saying is that Microsoft is effectively squatting on the 0x400000xx space with their definition. As written, it's not even clear that it will remain consistent between *their own* hypervisors, even less anyone else's.

-hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/