• Sean Christopherson's avatar
    KVM: x86/mmu: Use fast invalidate mechanism to zap MMIO sptes · 92f58b5c
    Sean Christopherson authored
    Use the fast invalidate mechasim to zap MMIO sptes on a MMIO generation
    wrap.  The fast invalidate flow was reintroduced to fix a livelock bug
    in kvm_mmu_zap_all() that can occur if kvm_mmu_zap_all() is invoked when
    the guest has live vCPUs.  I.e. using kvm_mmu_zap_all() to handle the
    MMIO generation wrap is theoretically susceptible to the livelock bug.
    
    This effectively reverts commit 4771450c ("Revert "KVM: MMU: drop
    kvm_mmu_zap_mmio_sptes""), i.e. restores the behavior of commit
    a8eca9dc ("KVM: MMU: drop kvm_mmu_zap_mmio_sptes").
    
    Note, this actually fixes commit 571c5af0 ("KVM: x86/mmu:
    Voluntarily reschedule as needed when zapping MMIO sptes"), but there
    is no need to incrementally revert back to using fast invalidate, e.g.
    doing so doesn't provide any bisection or stability benefits.
    
    Fixes: 571c5af0 ("KVM: x86/mmu: Voluntarily reschedule as needed when zapping MMIO sptes")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    92f58b5c
mmu.c 162 KB