• Maciej S. Szmigiero's avatar
    KVM: selftests: nSVM: Add svm_nested_soft_inject_test · d8969871
    Maciej S. Szmigiero authored
    Add a KVM self-test that checks whether a nSVM L1 is able to successfully
    inject a software interrupt, a soft exception and a NMI into its L2 guest.
    
    In practice, this tests both the next_rip field consistency and
    L1-injected event with intervening L0 VMEXIT during its delivery:
    the first nested VMRUN (that's also trying to inject a software interrupt)
    will immediately trigger a L0 NPF.
    This L0 NPF will have zero in its CPU-returned next_rip field, which if
    incorrectly reused by KVM will trigger a #PF when trying to return to
    such address 0 from the interrupt handler.
    
    For NMI injection this tests whether the L1 NMI state isn't getting
    incorrectly mixed with the L2 NMI state if a L1 -> L2 NMI needs to be
    re-injected.
    Reviewed-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
    [sean: check exact L2 RIP on first soft interrupt]
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Signed-off-by: default avatarMaciej S. Szmigiero <maciej.szmigiero@oracle.com>
    Message-Id: <d5f3d56528558ad8e28a9f1e1e4187f5a1e6770a.1651440202.git.maciej.szmigiero@oracle.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    d8969871
hyperv_svm_test.c 4.26 KB