> 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