id = 1045 title = "When a break point is set, nested virtualization sees \"kvm_queue_exception: Assertion `!env->exception_has_payload' failed.\"" state = "opened" created_at = "2022-05-29T07:22:07.098Z" closed_at = "n/a" labels = ["accel: KVM", "target: i386"] url = "https://gitlab.com/qemu-project/qemu/-/issues/1045" host-os = "Debian 11" host-arch = "x86_64" qemu-version = "QEMU emulator version 7.0.0" guest-os = "A micro-hypervisor called XMHF, which runs a small operating system called LHV" guest-arch = "x86" description = """I am debugging XMHF and LHV using QEMU + KVM. I found that if I set a break point using GDB, QEMU will crash when LHV is booting. The message is ``` qemu-system-i386: ../../../target/i386/kvm/kvm.c:678: kvm_queue_exception: Assertion `!env->exception_has_payload' failed. ``` The address of the break point is arbitrary. The break point does not need to hit. So I chose 0 as the address in this bug report.""" reproduce = """1. Start QEMU using `qemu-system-i386 -m 512M -gdb tcp::1234 -smp 2 -cpu Haswell,vmx=yes -enable-kvm -serial stdio -drive media=disk,file=1.img,index=1 -drive media=disk,file=2.img,index=2 -S` 2. In another shell, start GDB using `gdb --ex 'target remote :::1234' --ex 'hb *0' --ex c` 3. See many serial output lines. The tail of the output is ``` CPU #0: vcpu_vaddr_ptr=0x01e06080, esp=0x01e11000 CPU #1: vcpu_vaddr_ptr=0x01e06540, esp=0x01e15000 BSP(0x00): Rallying APs... BSP(0x00): APs ready, doing DRTM... LAPIC base and status=0xfee00900 Sending INIT IPI to all APs... ``` 4. See assertion error in QEMU ``` qemu-system-i386: ../target/i386/kvm/kvm.c:645: kvm_queue_exception: Assertion `!env->exception_has_payload' failed. ```""" additional = """This bug was first incorrectly filed in KVM's bug tracker at ."""