On Mon, Jul 21, 2025 at 7:00 AM Jiaqi Yan <jiaqiyan@xxxxxxxxxx> wrote: > > Hi Oliver, > > I was doing some SEA injection dev work and found > tools/testing/selftests/kvm/arm64/external_aborts.c is failing at the > head of my locally-tracked kvmarm/next, commit 811ec70dcf9cc ("Merge > branch 'kvm-arm64/config-masks' into kvmarm/next"): > > vobeb33:/export/hda3/tmp/yjq# ./external_aborts > Random seed: 0x6b8b4567 > test_mmio_abort <= fail > ==== Test Assertion Failure ==== > arm64/external_aborts.c:19: regs->pc == expected_abort_pc > pid=25675 tid=25675 errno=4 - Interrupted system call > (stack trace empty) > 0x0 != 0x21ed20 (regs->pc != expected_abort_pc) > vobeb33:/export/hda3/tmp/yjq# > vobeb33:/export/hda3/tmp/yjq# > vobeb33:/export/hda3/tmp/yjq# ./external_aborts > Random seed: 0x6b8b4567 > test_mmio_nisv <= pass > test_mmio_nisv_abort <=fail > ==== Test Assertion Failure ==== > arm64/external_aborts.c:19: regs->pc == expected_abort_pc > pid=26153 tid=26153 errno=4 - Interrupted system call > (stack trace empty) > 0x0 != 0x21eb18 (regs->pc != expected_abort_pc) > > It looks like the PC in the guest register is lost / polluted. I only > tested test_mmio_abort (fail), test_mmio_nisv (pass), and > test_mmio_nisv_abort (fail), but from reading the code of > test_mmio_nisv vs test_mmio_nisv_abort, I guess test failure is > probably due to some bug in the code kvm injects SEA into guest. > > If I revert a single commit efa1368ba9f4 ("KVM: arm64: Commit > exceptions from KVM_SET_VCPU_EVENTS immediately"), all tests in > tools/testing/selftests/kvm/arm64/external_aborts.c pass. I have not > yet figured out the bug tho. Want to report since you are the author > maybe you can (or already) spot something. Friendly ping ;) > > Thanks, > > Jiaqi