KVM: selftests: Explicitly clobber the IDT in the "delete memslot" testcase
authorSean Christopherson <seanjc@google.com>
Thu, 14 Mar 2024 23:26:26 +0000 (16:26 -0700)
committerSean Christopherson <seanjc@google.com>
Mon, 29 Apr 2024 19:55:12 +0000 (12:55 -0700)
commit61c3cffd4cbfe5c795d2eaf4a0341ec347fd0799
treeb287da7c536ef0fdb4c00f901f4471492d42d130
parentdec79eab2b48e4ae71a3e688342dce19da4212c2
KVM: selftests: Explicitly clobber the IDT in the "delete memslot" testcase

Explicitly clobber the guest IDT in the "delete memslot" test, which
expects the deleted memslot to result in either a KVM emulation error, or
a triple fault shutdown.  A future change to the core selftests library
will configuring the guest IDT and exception handlers by default, i.e.
will install a guest #PF handler and put the guest into an infinite #NPF
loop (the guest hits a !PRESENT SPTE when trying to vector a #PF, and KVM
reinjects the #PF without fixing the #NPF, because there is no memslot).

Note, it's not clear whether or not KVM's behavior is reasonable in this
case, e.g. arguably KVM should try (and fail) to emulate in response to
the #NPF.  But barring a goofy/broken userspace, this scenario will likely
never happen in practice.  Punt the KVM investigation to the future.

Link: https://lore.kernel.org/r/20240314232637.2538648-8-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/set_memory_region_test.c