Re: unhandled vm exit: 0x80000021 vcpu_id 0

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

 



Gabe Black wrote:
Hello again. I'm making more progress getting KVM going in M5, and right now I'm trying to figure out why I'm getting an unhandled vm exit with exit code 0x80000021. According to Intel's manual, something about the guest state isn't being set up correctly. I dumped the initial register state for the 0th virtual CPU and noticed that some things Intel claims are illegal show up there, for instance having paging and protected mode disabled. I'm assuming there's some cooking done to the state as presented to KVM to, for instance, substitute V8086 mode for real mode, etc. I've fixed a number of bugs in M5 that cleaned up some issues, but I'm hoping somebody with more knowledge can tell me what illegal state is still there that would make it through the kvms twiddling and cause VMX to abort. One thing that I know looks funny is that the limit on the IDT is zero, but I haven't been able to find any evidence in the manuals that that's considered wrong rather than just a bad idea. Any help here would be very appreciated!


idt.limit = 0 should be fine.


cs 0008 (00000000/ffffffff p 1 dpl 0 db 0 s 1 type a l 1 g 1 avl 0)
ds 0010 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 2 l 0 g 1 avl 0)
es 0010 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 2 l 0 g 1 avl 0)
ss 0010 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 2 l 0 g 1 avl 0)
fs 0010 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 2 l 0 g 1 avl 0)
gs 0010 (00000000/ffffffff p 1 dpl 0 db 1 s 1 type 2 l 0 g 1 avl 0)

Try setting bit 1 (accessed) on the types here.

tr 0018 (00000000/ffffffff p 1 dpl 0 db 1 s 0 type b l 0 g 1 avl 0)
ldt 0000 (00000000/00000000 p 0 dpl 0 db 0 s 0 type 0 l 0 g 0 avl 0)
gdt 76000/17
idt 0/0
cr0 80000011 cr2 0 cr3 70000 cr4 20 cr8 0 efer 500

kvm-kmod.git contains a vmx-debug.c which does the same checks as the cpu. If you link it in and call vm_entry_test() just before guest entry, it will point out where the state is bad.

--
error compiling committee.c: too many arguments to function

--
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