VMware Communities
jociz
Contributor
Contributor

The target host does not support CPUID faulting

Hi,

A virtual machine in VMware Workstation 9 has been suspended on  a machine that has a CPU Intel 2.8Ghz E5-2680 v2 Ivy Bridge. Then this suspended VM was tried to be resumed on a different machine that has a CPU
Intel E5-2680 2.7Ghz Sandy Bridge. But the resume operation did not work. There was a message dialogue box with a messages "The features supported the processors in this machine are different from the feature supported by the processor in the machine on which the virtual machine state was saved."


question_cpuid_faulting.png

Here is a part of vmware log file:

2014-02-13T11:54:02.467+01:00| vmx| I120: [msg.checkpoint.cpucheck.fail.feature] The features supported by the processors in this machine are different from the features supported by the processors in the machine on which the virtual machine state was saved.

2014-02-13T11:54:12.779+01:00| vmx| I120: [msg.cpuid.noCpuidFaultingSupport] Unable to restore this guest. The target host does not support CPUID faulting.

The only possible solution was to power off the VM and power on it again on the machine with Sandy Bridge. But the suspended state was lost.

So far I could not find any solution for resuming on the Sandy Bridge a VM that was suspended on Ivy Bridge CPU.  The CPUID faulting feature could not be masked out as far as I know.

Is there any possible way to hide or not to use "CPUID faulting" feature in VMware Workstation? Or is there some workaround for this resume problem?


0 Kudos
3 Replies
Dayworker
Enthusiast
Enthusiast

Suspend/Resume or vMotion on the vSphere side are only supported for cpu's with the same featureset. If you cannot mask cpu-features via EVC (Enhanced vMotion Compatibility) on vSphere then you have to shutdown the VM every time. But Suspend on a cpu with lower featureset and Resume on a cpu with higher featureset should work. I believe you will get the same error message but the VM should work at the end.

----- Please do not forget to assign reward points, if you find an answer useful.
jociz
Contributor
Contributor

Shutdown is not an acceptable solution. The suspended VM has some running applications that must be retained in order to do some important work on.

According to Intel doc,  the CPUID faulting can be detected from MSR bit 31. of 0xCEH.   I suppose the VMware also reads this MSR bit to check whether this feature exists or not. If this MSR bit can be cleared from BIOS or an application, VMware would not detect it. I will try this MSR option.

0 Kudos
jociz
Contributor
Contributor

I found the solution in vmx file.

Following vmx option does the trick and the resume is working now:

cpuidFaulting.enable = "FALSE"

because the target host has a Sandy Bridge cpu, further feature masks are needed to hide Ivy bridge extra features:

featMask.vm.cpuid.family="val:6"

featMask.vm.cpuid.model="val:45"

featMask.vm.cpuid.stepping="val:7"

These vmx options must be put in vmx file before the vm is started on the source host.

0 Kudos