Re: [nVMX w/ Haswell] KVM unit-tests in L1 - eventinj test fails trying to send NMI

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

 



> Thanks for the note, it's very helpful! This test actually fails on
> older CPUs as well, and I can finally reproduce the issue that Jay also
> reported. I'm not able to "cure" it by going back to 3b656cf764^,

Ok, you tried w/o this commit..
------------------------
commit 3b656cf764cbc43d3efb9bf5f45c618d4cf0989f
Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
Date:   Sun Apr 14 12:12:45 2013 +0200

    KVM: nVMX: Fix injection of PENDING_INTERRUPT and NMI_WINDOW exits to L1

    Check if the interrupt or NMI window exit is for L1 by testing if it has
    the corresponding controls enabled. This is required when we allow
    direct injection from L0 to L2
------------------------

>  just
> alter the error report. Anyway, a start. Now I just need time to debug it...

Great, would you prefer a bug to track this? Or will that be ignored? :)

Don't hesitate to let me know if you need any further testing help or
want me to try something specific.

Thanks.

>
> Jan
>
>>
>> /kashyap
>>
>> On Tue, Jun 4, 2013 at 6:14 PM, Kashyap Chamarthy <kashyap.cv@xxxxxxxxx> wrote:
>>> Heya,
>>>
>>> So, I invoked this in L1 with:
>>> =======================
>>> [test@foo kvm-unit-tests]$ time qemu-system-x86_64 -enable-kvm -device
>>> pc-testdev -serial stdio -nographic -no-user-config -nodefaults
>>> -device
>>> isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel ./x86/eventinj.flat |
>>> tee /var/tmp/eventinj-test.txt
>>> enabling apic
>>> paging enabled
>>> cr0 = 80010011
>>> cr3 = 7fff000
>>> cr4 = 20
>>> Try to divide by 0
>>> DE isr running divider is 0
>>> Result is 150
>>> DE exception: PASS
>>> Try int 3
>>> BP isr running
>>> After int 3
>>> BP exception: PASS
>>> Try send vec 33 to itself
>>> irq1 running
>>> After vec 33 to itself
>>> vec 33: PASS
>>> Try int $33
>>> irq1 running
>>> After int $33
>>> int $33: PASS
>>> Try send vec 32 and 33 to itself
>>> irq1 running
>>> irq0 running
>>> After vec 32 and 33 to itself
>>> vec 32/33: PASS
>>> Try send vec 32 and int $33
>>> irq1 running
>>> irq0 running
>>> After vec 32 and int $33
>>> vec 32/int $33: PASS
>>> Try send vec 33 and 62 and mask one with TPR
>>> irq1 running
>>> After 33/62 TPR test
>>> TPR: PASS
>>> irq0 running
>>> Try send NMI to itself
>>> After NMI to itself
>>> NMI: FAIL
>>> Try int 33 with shadowed stack
>>> irq1 running
>>> After int 33 with shadowed stack
>>> int 33 with shadowed stack: PASS
>>>
>>> summary: 9 tests, 1 failures
>>>
>>> real    0m0.647s
>>> user    0m0.164s
>>> sys     0m0.146s
>>> [test@foo kvm-unit-tests]$
>>> =======================
>>>
>>> Any hints on further debugging this ?
>>>
>>>
>>> Other info:
>>> --------------
>>>
>>> - L1's qemu-kvm CLI
>>> =======================
>>> # ps -ef | grep -i qemu
>>> qemu      5455     1 94 Jun02 ?        1-07:14:29
>>> /usr/bin/qemu-system-x86_64 -machine accel=kvm -name regular-guest -S
>>> -machine pc-i440fx-1.4,accel=kvm,usb=off -cpu Haswell,+vmx -m 10240
>>> -smp 4,sockets=4,cores=1,threads=1 -uuid
>>> 4ed9ac0b-7f72-dfcf-68b3-e6fe2ac588b2 -nographic -no-user-config
>>> -nodefaults -chardev
>>> socket,id=charmonitor,path=/var/lib/libvirt/qemu/regular-guest.monitor,server,nowait
>>> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc
>>> -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
>>> -drive file=/home/test/vmimages/regular-guest.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none
>>> -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
>>> -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=24 -device
>>> virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:80:c1:34,bus=pci.0,addr=0x3
>>> -chardev pty,id=charserial0 -device
>>> isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0
>>> -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
>>> root     12255  5419  0 08:41 pts/2    00:00:00 grep --color=auto -i qemu
>>> =======================
>>>
>>> - Setup details --
>>> https://github.com/kashyapc/nvmx-haswell/blob/master/SETUP-nVMX.rst
>>>
>>> /kashyap
>
--
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