• Sean Christopherson's avatar
    KVM: x86/mmu: Batch zap MMU pages when shrinking the slab · ebdb292d
    Sean Christopherson authored
    Use the recently introduced kvm_mmu_zap_oldest_mmu_pages() to batch zap
    MMU pages when shrinking a slab.  This fixes a long standing issue where
    KVM's shrinker implementation is completely ineffective due to zapping
    only a single page.  E.g. without batch zapping, forcing a scan via
    drop_caches basically has no impact on a VM with ~2k shadow pages.  With
    batch zapping, the number of shadow pages can be reduced to a few
    hundred pages in one or two runs of drop_caches.
    
    Note, if the default batch size (currently 128) is problematic, e.g.
    zapping 128 pages holds mmu_lock for too long, KVM can bound the batch
    size by setting @batch in mmu_shrinker.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Message-Id: <20200623193542.7554-4-sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    ebdb292d
mmu.c 169 KB