Running on an Intel Core i7 processor (which virt-manager refers to as
Nehalem, or the older Core 2 Duo, referred to as
Penryn), a KVM guest (or domain) is created using virt-manager. After installation, the guest's processor is changed to match the host's CPU. The guest is then unable to start and reports this error:
2012-02-06 17:49:15.985+0000: 20757: error : qemuBuildCpuArgStr:3565 : internal error guest CPU is not compatible with host CPU
Copy host CPU configuration in virt-manager shows Pentium III instead of
/usr/share/libvirt/cpu_map.xml file lists the flags that define each CPU model. The
Penryn definitions contain this:
As a result, the
No eXecute) flag needs to be presented to identify the CPU as
Penryn. However, in
/proc/cpuinfo, this flag is missing.
Nearly all new BIOSes allow enabling or disabling of the
No eXecute bit. However, if disabled, some CPUs do not report this flag and thus libvirt detects a different CPU. Enabling this functionality instructs libvirt to report the correct CPU. Refer to your hardware documentation for further instructions on this subject.