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

From: H. Peter Anvin
Date: Tue Oct 07 2008 - 18:41:36 EST


Nakajima, Jun wrote:
On 10/3/2008 5:35:39 PM, H. Peter Anvin wrote:
Nakajima, Jun wrote:
What's the significance of supporting multiple interfaces to the
same guest simultaneously, i.e. _runtime_? We don't want the guests
to run on such a literarily Frankenstein machine. And practically,
such testing/debugging would be good only for Halloween :-).

By that notion, EVERY CPU currently shipped is a "Frankenstein" CPU,
since at very least they export Intel-derived and AMD-derived interfaces.
This is in other words, a ridiculous claim.

The big difference here is that you could create a VM at runtime (by combining the existing interfaces) that did not exist before (or was not tested before). For example, a hypervisor could show hyper-v, osx-v (if any), linux-v, etc., and a guest could create a VM with hyper-v MMU, osx-v interrupt handling, Linux-v timer, etc. And such combinations/variations can grow exponentially.

Or are you suggesting that multiple interfaces be _available_ to guests at runtime but the guest chooses one of them?


The guest chooses what it wants to use. We already do this: for example, we use CPUID leaf 0x80000006 preferentially to CPUID leaf 2, simply because it is a better interface.

And you're absolutely right that the guest may end up picking and choosing different parts of the interfaces. That's how it is supposed to work.

-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/