]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86/mmu: Reuse the current root if possible for fast switch
authorSean Christopherson <sean.j.christopherson@intel.com>
Fri, 28 Feb 2020 22:52:40 +0000 (14:52 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 16 Mar 2020 16:57:37 +0000 (17:57 +0100)
commit90a8fc6c0cc81c172d1a30c439e66f8cb3dd79e3
treed42cb4212628f3d3ace456a5446c2e9a18260bd6
parented36eb44e3df0bc5839069cd812a2d5f21ccf435
KVM: x86/mmu: Reuse the current root if possible for fast switch

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: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c