Ticket #5559 (new enhancement)
Opened 7 years ago
[feature-request] VMM: Coexistence of different virtualizers on the same host (sharing of VMX)
|Reported by:||Technologov||Owned by:|
Hi All !
There is ongoing discussion of making multiple VMMs work on the same host, and share Intel hardware virtualization, VMX.
This is useful for running VirtualBox together with "XP Mode" on Windows 7 hosts, or together with "KVM" on Linux hosts.
I have found the following thread, and I hope this will be interesting for you:
From: SqUe Squarious <squarious@…> Date: Thu, Nov 19, 2009 at 7:57 PM Subject: KVM and VMware Workstation 7 - Is it finally possible? To: kvm@…
Hi! First time here, I am old user of vmware-server that recently moved to KVM. I am excited with KVM and I don't want to go back to vmware server for no reason. However as a developer I sometimes need to work with windows desktops and vmware workstation does a good job on this. I know kernel VT cannot work with two different hypervisors as it was never designed to do. So vmware workstation 6.5 could not run when kvm was running.
With vmware workstation 7 there is a change, I will copy paste parts of vmware communities thread but please read the whole thread.
"Being a user of KVM and reading what you I said I gave a try to workstation 7 to see if something have changed. Although the first time a vmware vm start-ups all KVM vms crash at the second try both KVM and VMware vms run simultaneously. After that success I ran at KVM irc channel to debug that crash problem but didn't believe me that I had two hypervisors with VT emulation running on the same host."
"It's a hack--Intel has assured us that it cannot possibly work. "
"But then something changed: in Workstation 7/Player 3/Fusion 3, jmattson found a hack which allows 2 foreign hypervisors to work on the same host with VT. It works really well in practice as you have been able to verify, but Intel warned us that sometimes it might not work in theory. I suspect this is the reason why jmattson does not want to talk about it."
"Everything would be fine if all hypervisor vendors could agree to leave VMX operation when yielding the CPU. VMware already does this if the CPU was not in VMX operation when we were scheduled. There may be some resistance to this idea for performance reasons. However, our current hack would be more robust if all hypervisor vendors could agree to clear the "launched" state of every active VMCS on the physical core before yielding the core to us. There may still be some resistance to this idea for performance reasons, but perhaps that's the starting point of a negotiation."
"In my case I have KVM/libvirt installed that autostarts 4 linux server VMs. When I first boot up my computer (and KVM autostarts) the first time that I will startup a vmware virtual machine, all KVM vms will crash instantly with log saying
kvm: unhandled exit 6 kvm_run returned -22" After that crash if I restart KVM, starting/stoping vmware vms does not affect them "
"Thank you for providing those additional details. Unhandled exit 6 is likely to mean VM-instruction error number 6, which means "VMRESUME with a corrupted VMCS (indicates corruption of the current VMCS)." This is exactly what we would expect when our hack fails. This particular failure could be avoided if the kvm hypervisor would clear the "launched" state of every active VMCS on the physical core before yielding the core to us. There may be other solutions as well, but there is nothing that VMware can do unilaterally to address this problem. Any feasible solution requires cooperation among the many hypervisor vendors."
Can these two hypervisors coexist in the same host with peace? In my case does KVM crash (only the first time) because of the reason that jmattson says?
Full thread: Whole thread: http://communities.vmware.com/message/1420821
What do you think of it?
If this is possible, I would be glad if this would be implemented into VirtualBox.