[libvirt] Unknown KVM internal error on 3.2.1

Doug Goldstein cardoe at gentoo.org
Tue Mar 20 20:40:38 UTC 2012


On Wed, Mar 7, 2012 at 8:19 AM, Avi Kivity <avi at redhat.com> wrote:
> On 03/07/2012 01:00 PM, Gleb Natapov wrote:
>> >
>> > > KVM internal error. Suberror: 1
>> > > emulation failure
>> > > EAX=8004003b EBX=38d54633 ECX=c0460a7e EDX=8005003b
>> > > ESI=e49329a8 EDI=f7c98d60 EBP=00000286 ESP=f7fecf68
>> > > EIP=f91d1778 EFL=00000282 [--S----] CPL=0 II=0 A20=1 SMM=0 HLT=0
>> > > ES =007b 00000000 ffffffff 00c0f300 DPL=3 DS   [-WA]
>> > > CS =0060 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
>> > > SS =0068 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
>> > > DS =007b 00000000 ffffffff 00c0f300 DPL=3 DS   [-WA]
>> > > FS =0000 00000000 ffffffff 00000000
>> > > GS =0000 b7f526c0 ffffffff 00000000
>> > > LDT=0088 c074a020 00000027 00008200 DPL=0 LDT
>> > > TR =0080 c180a7c4 00002073 00008b00 DPL=0 TSS32-busy
>> > > GDT=     f7c9f000 000000ff
>> > > IDT=     c06fa000 000007ff
>> > > CR0=8005003b CR2=0046b044 CR3=3100d000 CR4=000006d0
>> > > DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000
>> > > DR3=0000000000000000
>> > > DR6=00000000ffff0ff0 DR7=0000000000000400
>> > > EFER=0000000000000000
>> > > Code=?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? <??>
>> > > ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
>> > > ?? ?? ?? ?? ?? ??
>> >
>> > What are all these ?? doing here?  Usually they indicate the bad code,
>> > but here they don't, this is strange.
>> >
>> I think it tries to execute code from mmio.
>>
>
> Likely.  But let's be sure.
>
> When it happens again, please keep the guest alive so we can examine it
> via qemu monitor commands.
>
> --
> error compiling committee.c: too many arguments to function
>

Shortly after I sent the original e-mail I told libvirt to use the
host CPU. As discussed in another thread since libvirt uses
-nodefconfig, it doesn't really have the correct CPU. I believe the
original issue is from the fact that I had an AMD K10 based processor
with the errata that was previously causing some issues when it wasn't
respected. The default qemu64 processor that libvirt had the guest use
did not take into account this errata and causes this issue.

I have reverted these CPU settings and will get the monitor
information as soon as it occurs again.

Providing all the background just to be sure.


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>

What the guest used to be with qemu64 CPU:

processor	: 1
vendor_id	: AuthenticAMD
cpu family	: 6
model		: 3
model name	: QEMU Virtual CPU version 0.15.1
stepping	: 3
cpu MHz		: 2100.026
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 4
wp		: yes
flags		: fpu de pse tsc msr pae mce cx8 apic pge cmov pat mmx fxsr sse
sse2 pni popcnt
bogomips	: 4199.33

I also find it odd that the CPU says its 0.15.1 when -M pc-0.13 is
explicitly passed in via the command line.

-- 
Doug Goldstein




More information about the libvir-list mailing list