public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] KVM: lockdep improvements
@ 2025-04-30 20:23 Maxim Levitsky
  2025-04-30 20:23 ` [PATCH v3 1/4] arm64: KVM: use mutex_trylock_nest_lock when locking all vCPUs Maxim Levitsky
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Maxim Levitsky @ 2025-04-30 20:23 UTC (permalink / raw)
  To: kvm
  Cc: H. Peter Anvin, x86, Maxim Levitsky, Randy Dunlap, Paolo Bonzini,
	Will Deacon, Oliver Upton, Kunkun Jiang, Jing Zhang, Albert Ou,
	Keisuke Nishimura, Anup Patel, Catalin Marinas, Atish Patra,
	kvmarm, Waiman Long, Boqun Feng, linux-arm-kernel, Peter Zijlstra,
	Dave Hansen, Paul Walmsley, Suzuki K Poulose, Zenghui Yu,
	Sebastian Ott, Andre Przywara, Ingo Molnar, Alexandre Ghiti,
	Bjorn Helgaas, Palmer Dabbelt, Joey Gouly, Borislav Petkov,
	Sean Christopherson, Marc Zyngier, Alexander Potapenko,
	Thomas Gleixner, linux-kernel, linux-riscv, Shusen Li, kvm-riscv

This is	a continuation of my 'extract lock_all_vcpus/unlock_all_vcpus'
patch series.

Implement the suggestion of using lockdep's "nest_lock" feature
when locking all KVM vCPUs by adding mutex_trylock_nest_lock() and
mutex_lock_killable_nest_lock() and use these functions	in the
implementation of the
kvm_trylock_all_vcpus()/kvm_lock_all_vcpus()/kvm_unlock_all_vcpus().

Those changes allow removal of a custom workaround that was needed to
silence the lockdep warning in the SEV code and also stop lockdep from
complaining in case of ARM and RISC-V code which doesn't include the above
mentioned workaround.

Finally, it's worth noting that this patch series removes a fair
amount of duplicate code by implementing the logic in one place.

Best regards,
	Maxim Levitsky

Maxim Levitsky (4):
  arm64: KVM: use mutex_trylock_nest_lock when locking all vCPUs
  RISC-V: KVM: switch to kvm_lock/unlock_all_vcpus
  locking/mutex: implement mutex_lock_killable_nest_lock
  x86: KVM: SEV: implement kvm_lock_all_vcpus and use it

 arch/arm64/include/asm/kvm_host.h     |  3 --
 arch/arm64/kvm/arch_timer.c           |  4 +-
 arch/arm64/kvm/arm.c                  | 43 ----------------
 arch/arm64/kvm/vgic/vgic-init.c       |  4 +-
 arch/arm64/kvm/vgic/vgic-its.c        |  8 +--
 arch/arm64/kvm/vgic/vgic-kvm-device.c | 12 ++---
 arch/riscv/kvm/aia_device.c           | 34 +------------
 arch/x86/kvm/svm/sev.c                | 72 ++-------------------------
 include/linux/kvm_host.h              |  4 ++
 include/linux/mutex.h                 | 17 +++++--
 kernel/locking/mutex.c                |  7 +--
 virt/kvm/kvm_main.c                   | 59 ++++++++++++++++++++++
 12 files changed, 100 insertions(+), 167 deletions(-)

-- 
2.46.0




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

end of thread, other threads:[~2025-05-07 17:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-30 20:23 [PATCH v3 0/4] KVM: lockdep improvements Maxim Levitsky
2025-04-30 20:23 ` [PATCH v3 1/4] arm64: KVM: use mutex_trylock_nest_lock when locking all vCPUs Maxim Levitsky
2025-05-07 17:04   ` kernel test robot
2025-04-30 20:23 ` [PATCH v3 2/4] RISC-V: KVM: switch to kvm_lock/unlock_all_vcpus Maxim Levitsky
2025-04-30 20:23 ` [PATCH v3 3/4] locking/mutex: implement mutex_lock_killable_nest_lock Maxim Levitsky
2025-04-30 20:23 ` [PATCH v3 4/4] x86: KVM: SEV: implement kvm_lock_all_vcpus and use it Maxim Levitsky
2025-04-30 20:30 ` [PATCH v3 0/4] KVM: lockdep improvements mlevitsk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox