Re: KVM entry failed, hardware error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07.06.2012 09:12, Avi Kivity wrote:

> add -monitor stdio to the command line and then:
> 
> (qemu) info registers
> (qemu) x/20i 0xcsbase + $eip
>
> Run info registers a few times and note whether eip changes or not.

It does not. Here's where it hangs:

(qemu) info registers
EAX=000023de EBX=00000b70 ECX=00000b90 EDX=00000002
ESI=002523de EDI=00000b84 EBP=0000146e ESP=0000146e
EIP=000008d7 EFL=00000202 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =23de 00023de0 0000ffff 0000f300
CS =2000 00020000 0000ffff 0000f300
SS =23de 00023de0 0000ffff 0000f300
DS =23de 00023de0 0000ffff 0000f300
FS =0060 00023de0 0000ffff 00009300
GS =0060 00023de0 0000ffff 00009300
LDT=0000 00000000 ffffffff 00c00000
TR =0040 feffd000 00002088 00008b00
GDT=     0001f000 0000007f
IDT=     00000000 0000ffff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000
DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000
XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000
XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000
XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000
XMM07=00000000000000000000000000000000

(qemu) x/20i 0x20000 + $eip
0x00000000000208d7:  leave
0x00000000000208d8:  ret
0x00000000000208d9:  enter  $0x0,$0x0
0x00000000000208dd:  push   %ebp
0x00000000000208df:  push   %ebx
0x00000000000208e1:  push   %esi
0x00000000000208e3:  push   %edi
0x00000000000208e5:  mov    %esp,%ebx
0x00000000000208e8:  mov    %ebx,%edi
0x00000000000208eb:  add    $0x14,%edi
0x00000000000208ef:  addr32 mov (%edi),%eax
0x00000000000208f3:  mov    $0x1480,%sp
0x00000000000208f6:  xor    %bp,%bp
0x00000000000208f8:  movzwl %bp,%ebp
0x00000000000208fc:  movzwl %sp,%esp
0x0000000000020900:  push   %ebx
0x0000000000020902:  push   %eax
0x0000000000020904:  call   0x20919
0x0000000000020907:  add    $0x4,%sp
0x000000000002090a:  pop    %ebx

And this is where it came from and tries to return to:

(qemu) x /8hx 0x23de0 + $esp
000000000002524e: 0x1474 0x092a 0x0001 0x0000 0x0907 0x4970 0x0002 0x0b70

(qemu) x/20i 0x20000 + 0x92a - 0x15
0x0000000000020915:  pop    %ebp
0x0000000000020917:  leave
0x0000000000020918:  ret
0x0000000000020919:  enter  $0x0,$0x0
0x000000000002091d:  mov    0x1510,%ax
0x0000000000020920:  push   %ax
0x0000000000020921:  and    %ax,%ax
0x0000000000020923:  je     0x2092a
0x0000000000020927:  call   0x20871
0x000000000002092a:  push   %bx
0x000000000002092b:  push   %di
0x000000000002092c:  push   %si
0x000000000002092d:  push   %ds
0x000000000002092e:  push   %es
0x000000000002092f:  push   %bp
0x0000000000020930:  mov    0x4(%bp),%eax
0x0000000000020934:  mov    %ax,%bp
0x0000000000020936:  and    $0xf,%bp
0x0000000000020939:  shr    $0x4,%eax
0x000000000002093d:  mov    %ax,%ds

Here's the whole function that causes the hangup:

(qemu) x/39i 0x20000 + 0x871
0x0000000000020871:  enter  $0x0,$0x0
0x0000000000020875:  push   %ebx
0x0000000000020877:  mov    0x1510,%ax
0x000000000002087a:  and    %ax,%ax
0x000000000002087c:  je     0x208d5
0x0000000000020880:  sgdtw  0x1500
0x0000000000020885:  sidtw  0x1508
0x000000000002088a:  movw   $0x0,0x1510
0x0000000000020890:  mov    %cr0,%eax
0x0000000000020893:  mov    %eax,0x1514
0x0000000000020897:  and    $0x7ffffffe,%eax
0x000000000002089d:  mov    %eax,%cr0
0x00000000000208a0:  jmp    0x208a5
0x00000000000208a2:  nop
0x00000000000208a3:  nop
0x00000000000208a4:  nop
0x00000000000208a5:  mov    %cr3,%eax
0x00000000000208a8:  nop
0x00000000000208a9:  nop
0x00000000000208aa:  nop
0x00000000000208ab:  nop
0x00000000000208ac:  mov    %eax,%cr3
0x00000000000208af:  pushw  0x1536
0x00000000000208b3:  pop    %es
0x00000000000208b4:  mov    $0x8c6,%bx
0x00000000000208b7:  mov    0x1536,%ax
0x00000000000208ba:  mov    %ax,%es:-0x2(%bx)
0x00000000000208be:  ljmp   *%es:-0x4(%bx)
0x00000000000208c2:  (bad)
0x00000000000208c3:  or     %al,(%bx,%si)
0x00000000000208c5:  and    %ah,0x1534(%bx,%di)
0x00000000000208c9:  mov    %ax,%ds
0x00000000000208cb:  mov    %ax,%ss
0x00000000000208cd:  mov    %ax,%es
0x00000000000208cf:  lidtw  0x14f8
0x00000000000208d4:  sti
0x00000000000208d5:  pop    %ebx
0x00000000000208d7:  leave
0x00000000000208d8:  ret

Best regards,
Joe
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux