[libvirt] libvirt starts QEMU with bad CPU based on its XML

Doug Goldstein cardoe at gentoo.org
Tue Mar 27 20:07:44 UTC 2012


My XML configs for my VM machines have it set to AMD Opteron G3s, but
libvirt is creating QEMU with a core2duo. This is not correct at all.
I've included the setup and config of one machine that does this. But
another machine that does this matches danpb's AMD Quad Core Dual NUMA
system he posted on the mailing list recently. That machine is using a
stock qemu-0.15.1 from upstream's git and libvirt git a few commits
shy of the 0.9.11 rc1. The machine below is using libvirt 0.9.10 and
qemu-kvm-1.0.


Here's the setup:

The host is:

processor       : 63
vendor_id       : AuthenticAMD
cpu family      : 21
model           : 1
model name      : AMD Opteron(TM) Processor 6272
stepping        : 2
microcode       : 0x6000613
cpu MHz         : 2099.875
cache size      : 2048 KB
physical id     : 2
siblings        : 16
core id         : 7
cpu cores       : 8
apicid          : 79
initial apicid  : 79
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt
pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid
amd_dcm aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2
popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm
sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4
nodeid_msr topoext perfctr_core arat cpb npt lbrv svm_lock nrip_save
tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips        : 4200.08
TLB size        : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate [9]

The guest is:

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
stepping        : 11
cpu MHz         : 2100.397
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb lm
pni cx16 popcnt lahf_lm cmp_legacy svm cr8legacy abm sse4a misalignsse
3dnowprefetch
bogomips        : 4200.01

The QEMU command line contains the following:

-cpu core2duo,+wdt,+skinit,+osvw,+3dnowprefetch,+misalignsse,+sse4a,+abm,+cr8legacy,+extapic,+svm,+cmp_legacy,+lahf_lm,+rdtscp,+pdpe1gb,+fxsr_opt,+mmxext,+aes,+popcnt,+sse4.2,+sse4.1,+cx16,+ht

While libvirt's XML contains:

 <cpu match='exact'>
   <model>Opteron_G3</model>
   <vendor>AMD</vendor>
   <feature policy='require' name='aes'/>
   <feature policy='require' name='skinit'/>
   <feature policy='require' name='vme'/>
   <feature policy='require' name='mmxext'/>
   <feature policy='require' name='fxsr_opt'/>
   <feature policy='require' name='cr8legacy'/>
   <feature policy='require' name='ht'/>
   <feature policy='require' name='3dnowprefetch'/>
   <feature policy='require' name='ssse3'/>
   <feature policy='require' name='wdt'/>
   <feature policy='require' name='extapic'/>
   <feature policy='require' name='pdpe1gb'/>
   <feature policy='require' name='osvw'/>
   <feature policy='require' name='sse4.1'/>
   <feature policy='require' name='cmp_legacy'/>
   <feature policy='require' name='sse4.2'/>
 </cpu>

-- 
Doug Goldstein




More information about the libvir-list mailing list