** No longer affects: linux-kvm (Ubuntu) -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux-kvm in Ubuntu. https://bugs.launchpad.net/bugs/2076213
Title: eventinj ubuntu_kvm_unit_test bionic:oracle-5.4 flaky "vec 32/int $33" Status in ubuntu-kernel-tests: New Bug description: Found with bionic:linux-oracle-5.4 (5.4.0-1129.138~18.04.1) on Oracle:VM.Standard.E3.Flex-4c.8m for 2024.07.08 cycle. eventinj test failed (see the following log) due to interrupt handler for a NMI (int $33) not running before interrupt handler for a maskable interrupt (vec 32). In test, NMI is send immediately after enabling maskable interrupts with the following sequence asm volatile ("sti; int $33"); in line 313. After "sti" instruction (which enables interrupts) there is a delay for next instruction to execute. However, it is also stated in Intel® 64 and IA-32 Architectures Software Developer’s Manual ( https://software.intel.com/en-us/download/intel-64-and- ia-32-architectures-sdm-combined- volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4): "The IF flag and the STI and CLI instructions do not prohibit the generation of exceptions and nonmaskable interrupts (NMIs). However, NMIs (and system-management interrupts) may be inhibited on the instruction boundary following an execution of STI that begins with IF = 0." This test passed after 4 runs, first 3 runs failed in the same way (see logs below). This could be that test is either flaky (more likely) or we have a race condition (less likely, can be caused by lack of memory/instruction barriers). This test is hinted for focal:linux-oracle-5.15 (5.15.0-1063) for the same reason which leans toward test being flaky. I just wanted to record the issue to keep an eye on this, I am not going to permanently hint this test for now. 13:51:20 INFO | START ubuntu_kvm_unit_tests.eventinj ubuntu_kvm_unit_tests.eventinj timestamp=1722693080 timeout=1800 localtime=Aug 03 13:51:20 13:51:20 DEBUG| Persistent state client._record_indent now set to 2 13:51:20 DEBUG| Persistent state client.unexpected_reboot now set to ('ubuntu_kvm_unit_tests.eventinj', 'ubuntu_kvm_unit_tests.eventinj') 13:51:20 DEBUG| Waiting for pid 15374 for 1800 seconds 13:51:20 DEBUG| Running 'kvm-ok' 13:51:20 DEBUG| [stdout] INFO: /dev/kvm exists 13:51:20 DEBUG| [stdout] KVM acceleration can be used 13:51:20 DEBUG| Running '/home/ubuntu/autotest/client/tmp/ubuntu_kvm_unit_tests/src/kvm-unit-tests/tests/eventinj' 13:51:20 DEBUG| [stdout] BUILD_HEAD=b04954c9 13:51:21 DEBUG| [stdout] timeout -k 1s --foreground 90s /usr/bin/qemu-system-x86_64 --no-reboot -nodefaults -device pc-testdev -device isa-debug-exit,iobase=0xf4,iosize=0x4 -vnc none -serial stdio -device pci-testdev -machine accel=kvm -kernel /tmp/tmp.dOXYNu6N1b -smp 1 # -initrd /tmp/tmp.U6zbIRL4sr 13:51:21 DEBUG| [stderr] qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] 13:51:22 DEBUG| [stdout] enabling apic 13:51:22 DEBUG| [stdout] smp: waiting for 0 APs 13:51:22 DEBUG| [stdout] paging enabled 13:51:22 DEBUG| [stdout] cr0 = 80010011 13:51:22 DEBUG| [stdout] cr3 = 1007000 13:51:22 DEBUG| [stdout] cr4 = 20 13:51:22 DEBUG| [stdout] Try to divide by 0 13:51:22 DEBUG| [stdout] DE isr running divider is 0 13:51:22 DEBUG| [stdout] Result is 150 13:51:22 DEBUG| [stdout] PASS: DE exception 13:51:22 DEBUG| [stdout] Try int 3 13:51:22 DEBUG| [stdout] BP isr running 13:51:22 DEBUG| [stdout] After int 3 13:51:22 DEBUG| [stdout] PASS: BP exception 13:51:22 DEBUG| [stdout] Sending vec 33 to self 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After vec 33 to self 13:51:22 DEBUG| [stdout] PASS: vec 33 13:51:22 DEBUG| [stdout] Try int $33 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After int $33 13:51:22 DEBUG| [stdout] PASS: int $33 13:51:22 DEBUG| [stdout] Sending vec 32 and 33 to self 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] irq0 running 13:51:22 DEBUG| [stdout] After vec 32 and 33 to self 13:51:22 DEBUG| [stdout] PASS: vec 32/33 13:51:22 DEBUG| [stdout] Sending vec 32 and int $33 13:51:22 DEBUG| [stdout] irq0 running 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After vec 32 and int $33 13:51:22 DEBUG| [stdout] FAIL: vec 32/int $33 13:51:22 DEBUG| [stdout] Sending vec 33 and 62 and mask one with TPR 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After 33/62 TPR test 13:51:22 DEBUG| [stdout] PASS: TPR 13:51:22 DEBUG| [stdout] irq0 running 13:51:22 DEBUG| [stdout] Before NP test 13:51:22 DEBUG| [stdout] NP isr running 4008d9 err=18 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After int33 13:51:22 DEBUG| [stdout] PASS: NP exception 13:51:22 DEBUG| [stdout] Sending NMI to self 13:51:22 DEBUG| [stdout] NMI isr running 0x406765 13:51:22 DEBUG| [stdout] Sending nested NMI to self 13:51:22 DEBUG| [stdout] After nested NMI to self 13:51:22 DEBUG| [stdout] Nested NMI isr running rip=405da3 13:51:22 DEBUG| [stdout] After NMI to self 13:51:22 DEBUG| [stdout] PASS: NMI 13:51:22 DEBUG| [stdout] Before NMI IRET test 13:51:22 DEBUG| [stdout] Sending NMI to self 13:51:22 DEBUG| [stdout] NMI isr running stack 0x1013000 13:51:22 DEBUG| [stdout] Sending nested NMI to self 13:51:22 DEBUG| [stdout] After nested NMI to self 13:51:22 DEBUG| [stdout] Nested NMI isr running rip=400213 13:51:22 DEBUG| [stdout] After iret 13:51:22 DEBUG| [stdout] After NMI to self 13:51:22 DEBUG| [stdout] PASS: NMI 13:51:22 DEBUG| [stdout] Try to divide by 0 13:51:22 DEBUG| [stdout] PF running 13:51:22 DEBUG| [stdout] DE isr running divider is 0 13:51:22 DEBUG| [stdout] Result is 150 13:51:22 DEBUG| [stdout] PASS: DE PF exceptions 13:51:22 DEBUG| [stdout] Before NP test 13:51:22 DEBUG| [stdout] PF running 13:51:22 DEBUG| [stdout] NP isr running 400b85 err=18 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After int33 13:51:22 DEBUG| [stdout] PASS: NP PF exceptions 13:51:22 DEBUG| [stdout] Try int 33 with shadowed stack 13:51:22 DEBUG| [stdout] irq1 running 13:51:22 DEBUG| [stdout] After int 33 with shadowed stack 13:51:22 DEBUG| [stdout] PASS: int 33 with shadowed stack 13:51:22 DEBUG| [stdout] SUMMARY: 13 tests, 1 unexpected failures 13:51:22 DEBUG| [stdout] FAIL eventinj (13 tests, 1 unexpected failures) 13:51:22 ERROR| Exception escaping from test: Traceback (most recent call last): File "/home/ubuntu/autotest/client/shared/test.py", line 411, in _exec _call_test_function(self.execute, *p_args, **p_dargs) File "/home/ubuntu/autotest/client/shared/test.py", line 823, in _call_test_function return func(*args, **dargs) File "/home/ubuntu/autotest/client/shared/test.py", line 291, in execute postprocess_profiled_run, args, dargs) File "/home/ubuntu/autotest/client/shared/test.py", line 212, in _call_run_once self.run_once(*args, **dargs) File "/home/ubuntu/autotest/client/tests/ubuntu_kvm_unit_tests/ubuntu_kvm_unit_tests.py", line 101, in run_once raise error.TestError("Test failed for {}".format(test_name)) TestError: Test failed for eventinj 13:51:22 ERROR| child process failed 13:51:22 DEBUG| Traceback (most recent call last): 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/parallel.py", line 25, in fork_start 13:51:22 DEBUG| l() 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/job.py", line 505, in 13:51:22 DEBUG| l = lambda: test.runtest(self, url, tag, args, dargs) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/test.py", line 125, in runtest 13:51:22 DEBUG| job.sysinfo.log_after_each_iteration) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py", line 913, in runtest 13:51:22 DEBUG| mytest._exec(args, dargs) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py", line 411, in _exec 13:51:22 DEBUG| _call_test_function(self.execute, *p_args, **p_dargs) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py", line 823, in _call_test_function 13:51:22 DEBUG| return func(*args, **dargs) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py", line 291, in execute 13:51:22 DEBUG| postprocess_profiled_run, args, dargs) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/shared/test.py", line 212, in _call_run_once 13:51:22 DEBUG| self.run_once(*args, **dargs) 13:51:22 DEBUG| File "/home/ubuntu/autotest/client/tests/ubuntu_kvm_unit_tests/ubuntu_kvm_unit_tests.py", line 101, in run_once 13:51:22 DEBUG| raise error.TestError("Test failed for {}".format(test_name)) 13:51:22 DEBUG| TestError: Test failed for eventinj 13:51:22 INFO | ERROR ubuntu_kvm_unit_tests.eventinj ubuntu_kvm_unit_tests.eventinj timestamp=1722693082 localtime=Aug 03 13:51:22 Test failed for eventinj 13:51:22 INFO | END ERROR ubuntu_kvm_unit_tests To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-kernel-tests/+bug/2076213/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp