emulator in ubuntu_kvm_unit_test timeout with "jump to non-canonical address" test with J-realtime on openstack AMD64

Bug #2022892 reported by Po-Hsu Lin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ubuntu-kernel-tests
New
Undecided
Unassigned
linux-realtime (Ubuntu)
New
Undecided
Unassigned

Bug Description

emulator test in ubuntu_kvm_unit_test will timeout with J-realtime on openstack amd64 instance. This issue can be seen after we start testing on openstack with 5.15.0-1036.39 in sru-20230320.

Test log:
 Running '/home/ubuntu/autotest/client/tmp/ubuntu_kvm_unit_tests/src/kvm-unit-tests/tests/emulator'
 BUILD_HEAD=d8edb59a
 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=tcg -kernel /tmp/tmp.ZwF6eq54JA -smp 1 # -initrd /tmp/tmp.zaTVj0FnC8
 enabling apic
 smp: waiting for 0 APs
 SKIP: Skipping tests the require forced emulation, use kvm.force_emulation_prefix=1 to enable
 paging enabled
 cr0 = 80010011
 cr3 = 1007000
 cr4 = 20
 PASS: mov reg, r/m (1)
 PASS: or
 PASS: add
 PASS: xor
 PASS: sub
 PASS: adc(0)
 PASS: adc(0)
 PASS: sbb(0)
 PASS: sbb(1)
 PASS: and
 PASS: test
 PASS: repe/cmpsb (1)
 PASS: repe cmpsb (1.zf)
 PASS: repe cmpsw (1)
 PASS: repe cmpll (1)
 PASS: repe cmpsq (1)
 PASS: repe cmpsb (2)
 PASS: repe cmpsw (2)
 PASS: repe cmpll (2)
 PASS: repe cmpsq (2)
 PASS: repe/cmpsb (1)
 PASS: repe cmpsb (1.zf)
 PASS: repe cmpsw (1)
 PASS: repe cmpll (1)
 PASS: repe cmpsq (1)
 PASS: repe cmpsb (2)
 PASS: repe cmpsw (2)
 PASS: repe cmpll (2)
 PASS: repe cmpsq (2)
 PASS: scasb match
 PASS: scasb mismatch
 PASS: scasw match
 PASS: scasw mismatch
 PASS: scasd match
 PASS: scasd mismatch
 PASS: scasq match
 PASS: scasq mismatch
 PASS: smsw (1)
 PASS: smsw (2)
 PASS: smsw (3)
 before 80010011 after 80010019
 PASS: lmsw (1)
 before 80010011 after 80010011
 PASS: lmsw (2)
 PASS: lmsw (3)
 PASS: outsb up
 PASS: outsb down
 PASS: incl
 PASS: decl
 PASS: incb
 PASS: decb
 PASS: lock incl
 PASS: lock decl
 PASS: lock incb
 PASS: lock decb
 PASS: lock negl
 PASS: lock notl
 PASS: lock negb
 PASS: lock notb
 PASS: btcl imm8, r/m
 PASS: btcl reg, r/m
 PASS: btcq reg, r/m
 PASS: bsfw r/m, reg
 PASS: bsfl r/m, reg
 PASS: bsfq r/m, reg
 PASS: bsfq r/m, reg
 PASS: bsrw r/m, reg
 PASS: bsrl r/m, reg
 PASS: bsrq r/m, reg
 PASS: bsrq r/m, reg
 PASS: imul ax, mem
 PASS: imul eax, mem
 PASS: imul ax, mem, imm8
 PASS: imul eax, mem, imm8
 PASS: imul ax, mem, imm
 PASS: imul eax, mem, imm
 PASS: imul rax, mem
 PASS: imul rax, mem, imm8
 PASS: imul rax, mem, imm
 PASS: movdqu (read)
 PASS: movdqu (write)
 PASS: movaps (read)
 PASS: movaps (write)
 PASS: movapd (read)
 PASS: movapd (write)
 PASS: movups (read)
 PASS: movups (write)
 PASS: movupd (read)
 PASS: movupd (write)
 PASS: movups unaligned
 PASS: movupd unaligned
 FAIL: unaligned movaps exception
 PASS: movups unaligned crosspage
 PASS: movups crosspage exception
 PASS: shld (cl)
 PASS: shrd (cl)
 PASS: ltr
 PASS: cross-page mmio read
 PASS: cross-page mmio write
 PASS: string_io_mmio
 SKIP: MOVBE unsupported by CPU
 PASS: no fep: #DB occurred after MOV SS
 PASS: push $imm8
 PASS: push %reg
 PASS: push mem
 PASS: push $imm
 PASS: pop mem
 PASS: pop mem (2)
 PASS: pop reg
 PASS: ret
 PASS: leave
 PASS: enter
 PASS: xchg reg, r/m (1)
 PASS: xchg reg, r/m (2)
 PASS: xchg reg, r/m (3)
 PASS: xchg reg, r/m (4)
 PASS: xadd reg, r/m (1)
 PASS: xadd reg, r/m (2)
 PASS: xadd reg, r/m (3)
 PASS: xadd reg, r/m (4)
 PASS: mov %cr8
 PASS: ljmp
 PASS: divq (fault)
 PASS: divq (1)
 PASS: mulb mem
 PASS: mulw mem
 PASS: mull mem
 PASS: mulq mem
 PASS: movq (mmx, read)
 PASS: movq (mmx, write)
 PASS: movb $imm, 0(%rip)
 PASS: Test ret/iret with a nullified segment
 PASS: mov null, %ss
 FAIL: mov null, %ss (with ss.rpl != cpl)
 PASS: cmovnel
 PASS: push16
 qemu-system-x86_64: terminating on signal 15 from pid 9798 (timeout)
 FAIL emulator (timeout; duration=90s)

Bump the timeout to 180 seconds does not help. This issue still exist with the latest upstream kvm-unit-tests code (02d8befe99f8)

It's the test_jmp_noncanonical() test in test_emulator_64() that cause this hang. Comment it out can make this test finish properly.

It's worthy to note that this test has passed with j/ibm on openstack amd64.

Po-Hsu Lin (cypressyew)
description: updated
description: updated
Po-Hsu Lin (cypressyew)
tags: added: ubuntu-kvm-unit-tests
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.