[kvm-unit-tests PATCH 00/14] x86: MSR_GS_BASE and friends

Sean Christopherson
2021-04-22T03:05:11Z

Fix unit tests on 32-bit SVM, and on VMX if/when 32-bit VMX starts
rejecting MSR_GS_BASE accesses.

Fix a variety of semi-related bugs in the MSR test, rework the test to
make the code maintainable, and expand its test coverage.

Sean Christopherson (14):
x86/cstart: Don't use MSR_GS_BASE in 32-bit boot code
x86: msr: Exclude GS/FS_BASE MSRs from 32-bit builds
x86: msr: Advertise GenuineIntel as vendor to play nice with SYSENTER
x86: msr: Restore original MSR value after writing arbitrary test
value
x86: Force the compiler to retrieve exception info from per-cpu area
x86: msr: Replace spaces with tabs in all of msr.c
x86: msr: Use ARRAY_SIZE() instead of open coded equivalent
x86: msr: Use the #defined MSR indices in favor of open coding the
values
x86: msr: Drop the explicit expected value
x86: msr: Add builder macros to define MSR entries
x86: msr: Pass msr_info instead of doing a lookup at runtime
x86: msr: Verify 64-bit only MSRs fault on 32-bit hosts
x86: msr: Test that always-canonical MSRs #GP on non-canonical value
x86: msr: Verify that EFER.SCE can be written on 32-bit vCPUs

lib/x86/desc.c | 6 +-
lib/x86/processor.h | 24 +++++++
x86/cstart.S | 28 ++++++--
x86/msr.c | 163 +++++++++++++++++++++-----------------------
x86/unittests.cfg | 5 ++
x86/vmx_tests.c | 2 -
6 files changed, 131 insertions(+), 97 deletions(-)