• Sean Christopherson's avatar
    Revert "KVM: MMU: document fast invalidate all pages" · a592a3b8
    Sean Christopherson authored
    Remove x86 KVM's fast invalidate mechanism, i.e. revert all patches
    from the original series[1].
    
    Though not explicitly stated, for all intents and purposes the fast
    invalidate mechanism was added to speed up the scenario where removing
    a memslot, e.g. as part of accessing reading PCI ROM, caused KVM to
    flush all shadow entries[1].  Now that the memslot case flushes only
    shadow entries belonging to the memslot, i.e. doesn't use the fast
    invalidate mechanism, the only remaining usage of the mechanism are
    when the VM is being destroyed and when the MMIO generation rolls
    over.
    
    When a VM is being destroyed, either there are no active vcpus, i.e.
    there's no lock contention, or the VM has ungracefully terminated, in
    which case we want to reclaim its pages as quickly as possible, i.e.
    not release the MMU lock if there are still CPUs executing in the VM.
    
    The MMIO generation scenario is almost literally a one-in-a-million
    occurrence, i.e. is not a performance sensitive scenario.
    
    Given that lock-breaking is not desirable (VM teardown) or irrelevant
    (MMIO generation overflow), remove the fast invalidate mechanism to
    simplify the code (a small amount) and to discourage future code from
    zapping all pages as using such a big hammer should be a last restort.
    
    This reverts commit f6f8adee.
    
    [1] https://lkml.kernel.org/r/1369960590-14138-1-git-send-email-xiaoguangrong@linux.vnet.ibm.com
    
    Cc: Xiao Guangrong <guangrong.xiao@gmail.com>
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    a592a3b8
kvm_host.h 45.9 KB