KVM: selftests: Add test case for MMIO during vectoring on x86
authorIvan Orlov <iorlov@amazon.com>
Tue, 17 Dec 2024 18:14:58 +0000 (18:14 +0000)
committerSean Christopherson <seanjc@google.com>
Wed, 18 Dec 2024 23:14:47 +0000 (15:14 -0800)
commit62e41f6b4f3697e5909cdf70d56e9a7ebd958732
treedd4a9f1ff670062b74d699c36528418e93603c10
parent4e9427aeb9572a4023b42e64ca2cd2ca3cbf7e20
KVM: selftests: Add test case for MMIO during vectoring on x86

Extend the 'set_memory_region_test' with an x86-only test case which
covers emulated MMIO during event vectoring error handling. The test case

1) Sets an IDT descriptor base to point to an MMIO address
2) Generates a #GP in the guest
3) Verifies userspace gets the correct exit reason, suberror code, and
   GPA in internal.data[3]

Opportunistically add a definition for a non-canonical address to
processor.h so that the source of the #GP is somewhat self-documenting,
and so that future tests don't have to reinvent the wheel.

Signed-off-by: Ivan Orlov <iorlov@amazon.com>
Link: https://lore.kernel.org/r/20241217181458.68690-8-iorlov@amazon.com
[sean: massage changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/include/x86/processor.h
tools/testing/selftests/kvm/set_memory_region_test.c