• Vitaly Kuznetsov's avatar
    KVM: selftests: nSVM: Add enlightened MSR-Bitmap selftest · e67bd7df
    Vitaly Kuznetsov authored
    Introduce a new test for Hyper-V nSVM extensions (Hyper-V on KVM) and add
    a test for enlightened MSR-Bitmap feature:
    
    - Intercept access to MSR_FS_BASE in L1 and check that this works
      with enlightened MSR-Bitmap disabled.
    - Enabled enlightened MSR-Bitmap and check that the intercept still works
      as expected.
    - Intercept access to MSR_GS_BASE but don't clear the corresponding bit
      from clean fields mask, KVM is supposed to skip updating MSR-Bitmap02 and
      thus the consequent access to the MSR from L2 will not get intercepted.
    - Finally, clear the corresponding bit from clean fields mask and check
      that access to MSR_GS_BASE is now intercepted.
    
    The test works with the assumption, that access to MSR_FS_BASE/MSR_GS_BASE
    is not intercepted for L1. If this ever becomes not true the test will
    fail as nested_svm_exit_handled_msr() always checks L1's MSR-Bitmap for
    L2 irrespective of clean fields. The behavior is correct as enlightened
    MSR-Bitmap feature is just an optimization, KVM is not obliged to ignore
    updates when the corresponding bit in clean fields stays clear.
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20220203104620.277031-7-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    e67bd7df
hyperv_svm_test.c 4.33 KB