Changes from v2: * Added two patches to refactor mmu_spte_update/clear and add a no_track version of mmu_spte_update. * Ensured that fast_page_fault handles non-write faults to large pages that are being access tracked. * Several minor changes based on code review feedback from v2. Changes from v1: * Patch 1 correctly maps to the current codebase by setting the Present bit in the page fault error code if any of the Readable, Writeable or Executable bits are set in the Exit Qualification. * Added Patch 5 to update Documentation/virtual/kvm/locking.txt This patch series implements a lockless access tracking mechanism for KVM when running on Intel CPUs that do not have EPT A/D bits. Currently, KVM tracks accesses on these machines by just clearing the PTEs and then remapping them when they are accessed again. However, the remapping requires acquiring the MMU lock in order to lookup the information needed to construct the PTE. On high core count VMs, this can result in significant MMU lock contention when running some memory-intesive workloads. This new mechanism just marks the PTEs as not-present, but keeps all the information within the PTE instead of clearing it. When the page is accessed again, the PTE can thus be restored without needing to acquire the MMU lock. Junaid Shahid (8): kvm: x86: mmu: Use symbolic constants for EPT Violation Exit Qualifications kvm: x86: mmu: Rename spte_is_locklessly_modifiable() kvm: x86: mmu: Fast Page Fault path retries kvm: x86: mmu: Refactor accessed/dirty checks in mmu_spte_update/clear kvm: x86: mmu: Introduce a no-tracking version of mmu_spte_update kvm: x86: mmu: Do not use bit 63 for tracking special SPTEs kvm: x86: mmu: Lockless access tracking for Intel CPUs without EPT A bits. kvm: x86: mmu: Update documentation for fast page fault mechanism Documentation/virtual/kvm/locking.txt | 31 ++- arch/x86/include/asm/kvm_host.h | 10 +- arch/x86/include/asm/vmx.h | 28 +- arch/x86/kvm/mmu.c | 464 +++++++++++++++++++++++----------- arch/x86/kvm/vmx.c | 54 ++-- arch/x86/kvm/x86.c | 2 +- 6 files changed, 419 insertions(+), 170 deletions(-) -- 2.8.0.rc3.226.g39d4020 -- 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