This patchset implements unlocked TLB flushing for KVM.  An operation that
generates stale TLB entries can mark the TLB as dirty instead of flushing
immediately, and then flush after releasing mmu_lock but before returning
to the guest or the caller.  A few call sites are converted too.

Note not all call sites are easily convertible; as an example, sync_page()
must flush before reading the guest page table.

Avi Kivity (4):
  KVM: Add APIs for unlocked TLB flush
  KVM: Flush TLB in mmu notifier without holding mmu_lock
  KVM: Flush TLB in FNAME(invlpg) without holding mmu_lock
  KVM: Flush TLB in change_pte mmu notifier without holding mmu_lock

 Documentation/virtual/kvm/locking.txt |   14 ++++++++++++
 arch/x86/kvm/mmu.c                    |   15 +++++--------
 arch/x86/kvm/paging_tmpl.h            |    9 ++++----
 include/linux/kvm_host.h              |   22 ++++++++++++++++++-
 virt/kvm/kvm_main.c                   |   39 +++++++++++++++++++++++----------
 5 files changed, 72 insertions(+), 27 deletions(-)

-- 
1.7.10

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to