kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/10] KVM: arm64: Avoid serializing LPI get() / put()
@ 2024-02-21  5:42 Oliver Upton
  2024-02-21  5:42 ` [PATCH v4 01/10] KVM: arm64: vgic: Store LPIs in an xarray Oliver Upton
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Oliver Upton @ 2024-02-21  5:42 UTC (permalink / raw)
  To: kvmarm
  Cc: kvm, Marc Zyngier, James Morse, Suzuki K Poulose, Zenghui Yu,
	linux-kernel, Eric Auger, Oliver Upton

Addressing a few more goofs that Zenghui was kind enough to point out.
Clearly all of the bugs have been found and addressed at this point.

v2: https://lore.kernel.org/kvmarm/20240213093250.3960069-1-oliver.upton@linux.dev/
v3: https://lore.kernel.org/kvmarm/20240216184153.2714504-1-oliver.upton@linux.dev/

v3 -> v4:
 - Actually walk the LPI INTID range in vgic_copy_lpi_list() (Zenghui)
 - Ensure xa_lock is taken w/ IRQs disabled, even after purging usage of
   the lpi_list_lock (Zenghui)
 - Document the lock ordering (Marc)

Oliver Upton (10):
  KVM: arm64: vgic: Store LPIs in an xarray
  KVM: arm64: vgic: Use xarray to find LPI in vgic_get_lpi()
  KVM: arm64: vgic-v3: Iterate the xarray to find pending LPIs
  KVM: arm64: vgic-its: Walk the LPI xarray in vgic_copy_lpi_list()
  KVM: arm64: vgic: Get rid of the LPI linked-list
  KVM: arm64: vgic: Use atomics to count LPIs
  KVM: arm64: vgic: Free LPI vgic_irq structs in an RCU-safe manner
  KVM: arm64: vgic: Rely on RCU protection in vgic_get_lpi()
  KVM: arm64: vgic: Ensure the irq refcount is nonzero when taking a ref
  KVM: arm64: vgic: Don't acquire the lpi_list_lock in vgic_put_irq()

 arch/arm64/kvm/vgic/vgic-debug.c |  2 +-
 arch/arm64/kvm/vgic/vgic-init.c  |  4 ++-
 arch/arm64/kvm/vgic/vgic-its.c   | 55 +++++++++++++++++++----------
 arch/arm64/kvm/vgic/vgic-v3.c    |  3 +-
 arch/arm64/kvm/vgic/vgic.c       | 60 +++++++++++---------------------
 arch/arm64/kvm/vgic/vgic.h       | 15 +++++---
 include/kvm/arm_vgic.h           |  9 ++---
 7 files changed, 79 insertions(+), 69 deletions(-)


base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
-- 
2.44.0.rc0.258.g7320e95886-goog


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

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

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-21  5:42 [PATCH v4 00/10] KVM: arm64: Avoid serializing LPI get() / put() Oliver Upton
2024-02-21  5:42 ` [PATCH v4 01/10] KVM: arm64: vgic: Store LPIs in an xarray Oliver Upton
2024-02-21  5:42 ` [PATCH v4 02/10] KVM: arm64: vgic: Use xarray to find LPI in vgic_get_lpi() Oliver Upton
2024-02-21  5:42 ` [PATCH v4 03/10] KVM: arm64: vgic-v3: Iterate the xarray to find pending LPIs Oliver Upton
2024-02-21  5:42 ` [PATCH v4 04/10] KVM: arm64: vgic-its: Walk the LPI xarray in vgic_copy_lpi_list() Oliver Upton
2024-02-21  5:42 ` [PATCH v4 05/10] KVM: arm64: vgic: Get rid of the LPI linked-list Oliver Upton
2024-02-21  5:42 ` [PATCH v4 06/10] KVM: arm64: vgic: Use atomics to count LPIs Oliver Upton
2024-02-21  5:42 ` [PATCH v4 07/10] KVM: arm64: vgic: Free LPI vgic_irq structs in an RCU-safe manner Oliver Upton
2024-02-21  5:42 ` [PATCH v4 08/10] KVM: arm64: vgic: Rely on RCU protection in vgic_get_lpi() Oliver Upton
2024-02-21  5:42 ` [PATCH v4 09/10] KVM: arm64: vgic: Ensure the irq refcount is nonzero when taking a ref Oliver Upton
2024-02-21  5:42 ` [PATCH v4 10/10] KVM: arm64: vgic: Don't acquire the lpi_list_lock in vgic_put_irq() Oliver Upton
2024-02-23 14:23 ` [PATCH v4 00/10] KVM: arm64: Avoid serializing LPI get() / put() Marc Zyngier
2024-02-23 21:52 ` Oliver Upton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).