All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/4] KVM: x86/mmu: Pre-check for mmu_notifier retry
@ 2024-02-09 22:28 Sean Christopherson
  2024-02-09 22:28 ` [PATCH v4 1/4] KVM: x86/mmu: Retry fault before acquiring mmu_lock if mapping is changing Sean Christopherson
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Sean Christopherson @ 2024-02-09 22:28 UTC (permalink / raw)
  To: Sean Christopherson, Paolo Bonzini
  Cc: kvm, linux-kernel, Yan Zhao, Friedrich Weber, Kai Huang, Yuan Yao,
	Xu Yilun, Yu Zhang, Chao Peng, Fuad Tabba, Michael Roth,
	Isaku Yamahata, David Matlack

Retry page faults without acquiring mmu_lock, and potentially even without
resolving a pfn, if the gfn is covered by an active invalidation.  This
avoids resource and lock contention, which can be especially beneficial
for preemptible kernels as KVM can get stuck bouncing mmu_lock between a
vCPU and the invalidation task the vCPU is waiting on to finish.

v4: 
 - Pre-check for retry before resolving the pfn, too. [Yan]
 - Add a patch to fix a private/shared vs. memslot validity check
   priority inversion bug.
 - Refactor kvm_faultin_pfn() to clean up the handling of noslot faults.

v3:
 - https://lkml.kernel.org/r/20240203003518.387220-1-seanjc%40google.com
 - Release the pfn, i.e. put the struct page reference if one was held,
   as the caller doesn't expect to get a reference on "failure". [Yuan]
 - Fix a typo in the comment.

v2:
 - Introduce a dedicated helper and collapse to a single patch (because
   adding an unused helper would be quite silly).
 - Add a comment to explain the "unsafe" check in kvm_faultin_pfn(). [Kai]
 - Add Kai's Ack.

v1: https://lore.kernel.org/all/20230825020733.2849862-1-seanjc@google.com

Sean Christopherson (4):
  KVM: x86/mmu: Retry fault before acquiring mmu_lock if mapping is
    changing
  KVM: x86/mmu: Move private vs. shared check above slot validity checks
  KVM: x86/mmu: Move slot checks from __kvm_faultin_pfn() to
    kvm_faultin_pfn()
  KVM: x86/mmu: Handle no-slot faults at the beginning of
    kvm_faultin_pfn()

 arch/x86/kvm/mmu/mmu.c          | 134 ++++++++++++++++++++++----------
 arch/x86/kvm/mmu/mmu_internal.h |   5 +-
 include/linux/kvm_host.h        |  26 +++++++
 3 files changed, 122 insertions(+), 43 deletions(-)


base-commit: 60eedcfceda9db46f1b333e5e1aa9359793f04fb
-- 
2.43.0.687.g38aa6559b0-goog


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-02-21  2:10 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-09 22:28 [PATCH v4 0/4] KVM: x86/mmu: Pre-check for mmu_notifier retry Sean Christopherson
2024-02-09 22:28 ` [PATCH v4 1/4] KVM: x86/mmu: Retry fault before acquiring mmu_lock if mapping is changing Sean Christopherson
2024-02-17 14:45   ` Xu Yilun
2024-02-19 16:18     ` Sean Christopherson
2024-02-09 22:28 ` [PATCH v4 2/4] KVM: x86/mmu: Move private vs. shared check above slot validity checks Sean Christopherson
2024-02-09 22:28 ` [PATCH v4 3/4] KVM: x86/mmu: Move slot checks from __kvm_faultin_pfn() to kvm_faultin_pfn() Sean Christopherson
2024-02-19  3:44   ` Yan Zhao
2024-02-19  9:12     ` Huang, Kai
2024-02-19 19:44     ` Sean Christopherson
2024-02-20  6:54       ` Yan Zhao
2024-02-21  2:10         ` Sean Christopherson
2024-02-09 22:28 ` [PATCH v4 4/4] KVM: x86/mmu: Handle no-slot faults at the beginning of kvm_faultin_pfn() Sean Christopherson
2024-02-14 13:17 ` [PATCH v4 0/4] KVM: x86/mmu: Pre-check for mmu_notifier retry Friedrich Weber

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.