• Sean Christopherson's avatar
    KVM: x86/mmu: Reuse the current root if possible for fast switch · 0be44352
    Sean Christopherson authored
    Reuse the current root when possible instead of grabbing a different
    root from the array of cached roots.  Doing so avoids unnecessary MMU
    switches and also fixes a quirk where KVM can't reuse roots without
    creating multiple roots since the cache is a victim cache, i.e. roots
    are added to the cache when they're "evicted", not when they are
    created.  The quirk could be fixed by adding roots to the cache on
    creation, but that would reduce the effective size of the cache as one
    of its entries would be burned to track the current root.
    
    Reusing the current root is especially helpful for nested virt as the
    current root is almost always usable for the "new" MMU on nested
    VM-entry/VM-exit.
    
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    0be44352
mmu.c 169 KB