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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html