On Mon, Oct 12, 2020 at 12:47 PM Aaron Lewis <aaronlewis@xxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> > Reviewed-by: Alexander Graf <graf@xxxxxxxxxx> > --- > tools/testing/selftests/kvm/.gitignore | 1 + > tools/testing/selftests/kvm/Makefile | 1 + > tools/testing/selftests/kvm/lib/kvm_util.c | 2 + > .../kvm/x86_64/userspace_msr_exit_test.c | 560 ++++++++++++++++++ > 4 files changed, 564 insertions(+) > create mode 100644 tools/testing/selftests/kvm/x86_64/userspace_msr_exit_test.c > It looks like the rest of this patchset has been accepted upstream. Is this one okay to be taken too?