diff options
author | Aaron Lewis <aaronlewis@google.com> | 2020-10-12 12:47:16 -0700 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-12-11 19:00:57 -0500 |
commit | 3cea1891748e0ed8e79fa5d9afe40750319751d1 (patch) | |
tree | 8f5ff0342fd63fe78f9adf0ba4f122f89dd94616 /arch/x86/include | |
parent | 6c44221b05236cc65d76cb5dc2463f738edff39d (diff) | |
download | linux-3cea1891748e0ed8e79fa5d9afe40750319751d1.tar.gz linux-3cea1891748e0ed8e79fa5d9afe40750319751d1.tar.bz2 linux-3cea1891748e0ed8e79fa5d9afe40750319751d1.zip |
selftests: kvm: Test MSR exiting to userspace
Add a selftest to test that when the ioctl KVM_X86_SET_MSR_FILTER is
called with an MSR list, those MSRs exit to userspace.
This test uses 3 MSRs to test this:
1. MSR_IA32_XSS, an MSR the kernel knows about.
2. MSR_IA32_FLUSH_CMD, an MSR the kernel does not know about.
3. MSR_NON_EXISTENT, an MSR invented in this test for the purposes of
passing a fake MSR from the guest to userspace. KVM just acts as a
pass through.
Userspace is also able to inject a #GP. This is demonstrated when
MSR_IA32_XSS and MSR_IA32_FLUSH_CMD are misused in the test. When this
happens a #GP is initiated in userspace to be thrown in the guest which is
handled gracefully by the exception handling framework introduced earlier
in this series.
Tests for the generic instruction emulator were also added. For this to
work the module parameter kvm.force_emulation_prefix=1 has to be enabled.
If it isn't enabled the tests will be skipped.
A test was also added to ensure the MSR permission bitmap is being set
correctly by executing reads and writes of MSR_FS_BASE and MSR_GS_BASE
in the guest while alternating which MSR userspace should intercept. If
the permission bitmap is being set correctly only one of the MSRs should
be coming through at a time, and the guest should be able to read and
write the other one directly.
Signed-off-by: Aaron Lewis <aaronlewis@google.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Message-Id: <20201012194716.3950330-5-aaronlewis@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/include')
0 files changed, 0 insertions, 0 deletions