• Sean Christopherson's avatar
    KVM: x86: Always load PDPTRs on CR3 load for SVM w/o NPT and a PAE guest · c7313155
    Sean Christopherson authored
    Kill off pdptrs_changed() and instead go through the full kvm_set_cr3()
    for PAE guest, even if the new CR3 is the same as the current CR3.  For
    VMX, and SVM with NPT enabled, the PDPTRs are unconditionally marked as
    unavailable after VM-Exit, i.e. the optimization is dead code except for
    SVM without NPT.
    
    In the unlikely scenario that anyone cares about SVM without NPT _and_ a
    PAE guest, they've got bigger problems if their guest is loading the same
    CR3 so frequently that the performance of kvm_set_cr3() is notable,
    especially since KVM's fast PGD switching means reloading the same CR3
    does not require a full rebuild.  Given that PAE and PCID are mutually
    exclusive, i.e. a sync and flush are guaranteed in any case, the actual
    benefits of the pdptrs_changed() optimization are marginal at best.
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210607090203.133058-4-mlevitsk@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    c7313155
x86.c 316 KB