Page 1 of 1

CPU virtualisation

Posted: 23. Oct 2009, 07:01
by NeBlackCat
In principle, could vbox make a VM's CPU appear to be a different type than the actual physical one?

For example, could it provide a more generic cpu (ie. missing Intel or AMD specific features) so that it's easier to transport VMs between heterogeneous hardware?

I was wondering if it would be trivial, or would require BOCHS-like full-on (and slow) CPU emulation.

Re: CPU virtualisation

Posted: 23. Oct 2009, 14:39
by Sasquatch
VB passes the exact same CPU to the VM as the Host is running, only a few features of the CPU are stripped to avoid certain problems.

Re: CPU virtualisation

Posted: 24. Oct 2009, 06:26
by NeBlackCat
Sasquatch wrote:VB passes the exact same CPU to the VM as the Host is running, only a few features of the CPU are stripped to avoid certain problems.
I know, hence the question! ;-)

Re: CPU virtualisation

Posted: 24. Oct 2009, 12:06
by Sasquatch
Hence my answer, you can't change the type or ID VB sends to the Guest. Only a generic set of instructions are passed on, or a few are left out. One of the other.

Re: CPU virtualisation

Posted: 25. Oct 2009, 17:20
by NeBlackCat
I'm not following you. I know you can't (currently). Hence I'm asking "how hard would it be for vbox to have this added?". For example (IIRC) ESX allows you to specify a bitmask that's applied to the value returned by the physical CPU to the CPUID instruction before the target gets it (might require VT-d though, I can't remember).