All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] KVM: arm64: vgic: Locking fixes
@ 2023-05-18 10:09 ` Jean-Philippe Brucker
  0 siblings, 0 replies; 35+ messages in thread
From: Jean-Philippe Brucker @ 2023-05-18 10:09 UTC (permalink / raw)
  To: oliver.upton, maz
  Cc: james.morse, suzuki.poulose, yuzenghui, catalin.marinas, will,
	linux-arm-kernel, kvmarm, Jean-Philippe Brucker

Another fun locking puzzle, between the new config_lock and srcu.
Patch 1 attempts to fix it, and the other patches fix simpler issues.

I got these lockdep reports while running KVM QEMU on a TCG QEMU, but it
can also be triggered by running the vgic_irq kselftest on TCG QEMU.
Now, with the fix and lockdep enabled, vgic_irq hangs but I believe it's
an unrelated weirdness: if I introduce a separate lockdep warning for
some made up locks, then the test passes again. So I'm sending this out
now for discussion, and will investigate that one later.

I run the host with:

qemu-system-aarch64 -M virt,virtualization=true,gic-version=3 -m 2G -smp 8 -cpu max -append 'console=hvc0 root=/dev/vda rw' -kernel Image -nodefaults -chardev stdio,mux=on,id=virtiocon0,signal=off -device virtio-serial-device -device virtconsole,chardev=virtiocon0 -mon chardev=virtiocon0,mode=readline -device virtio-blk-device,drive=hd0 -drive format=raw,if=none,file=virt_root.bin,id=hd0 -nographic

Jean-Philippe Brucker (4):
  KVM: arm64: vgic: Fix a circular locking issue
  KVM: arm64: vgic: Wrap vgic_its_create() with config_lock
  KVM: arm64: vgic: Fix locking comment
  KVM: arm64: vgic: Fix a comment

 arch/arm64/kvm/vgic/vgic-init.c       | 27 +++++++++++++++++------
 arch/arm64/kvm/vgic/vgic-its.c        | 14 ++++++++----
 arch/arm64/kvm/vgic/vgic-kvm-device.c | 10 +++++++--
 arch/arm64/kvm/vgic/vgic-mmio-v3.c    | 31 ++++++++++++++++++---------
 arch/arm64/kvm/vgic/vgic-mmio.c       |  8 ++-----
 arch/arm64/kvm/vgic/vgic-v2.c         |  6 ------
 arch/arm64/kvm/vgic/vgic-v3.c         |  7 ------
 arch/arm64/kvm/vgic/vgic-v4.c         |  3 ++-
 8 files changed, 64 insertions(+), 42 deletions(-)

-- 
2.40.0


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

end of thread, other threads:[~2023-06-07 15:43 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-18 10:09 [PATCH 0/4] KVM: arm64: vgic: Locking fixes Jean-Philippe Brucker
2023-05-18 10:09 ` Jean-Philippe Brucker
2023-05-18 10:09 ` [PATCH 1/4] KVM: arm64: vgic: Fix a circular locking issue Jean-Philippe Brucker
2023-05-18 10:09   ` Jean-Philippe Brucker
2023-05-18 18:21   ` Oliver Upton
2023-05-18 18:21     ` Oliver Upton
2023-06-06 22:15   ` Nathan Chancellor
2023-06-07  5:23     ` Oliver Upton
2023-06-07  5:23       ` Oliver Upton
2023-06-07  8:37       ` Marc Zyngier
2023-06-07  8:37         ` Marc Zyngier
2023-06-07 13:28         ` Jean-Philippe Brucker
2023-06-07 13:28           ` Jean-Philippe Brucker
2023-06-07 15:04           ` Marc Zyngier
2023-06-07 15:04             ` Marc Zyngier
2023-06-07 15:29             ` Nathan Chancellor
2023-06-07 15:29               ` Nathan Chancellor
2023-06-07 15:42               ` Marc Zyngier
2023-06-07 15:42                 ` Marc Zyngier
2023-05-18 10:09 ` [PATCH 2/4] KVM: arm64: vgic: Wrap vgic_its_create() with config_lock Jean-Philippe Brucker
2023-05-18 10:09   ` Jean-Philippe Brucker
2023-05-18 10:09 ` [PATCH 3/4] KVM: arm64: vgic: Fix locking comment Jean-Philippe Brucker
2023-05-18 10:09   ` Jean-Philippe Brucker
2023-05-18 10:09 ` [PATCH 4/4] KVM: arm64: vgic: Fix a comment Jean-Philippe Brucker
2023-05-18 10:09   ` Jean-Philippe Brucker
2023-05-18 18:23 ` [PATCH 0/4] KVM: arm64: vgic: Locking fixes Oliver Upton
2023-05-18 18:23   ` Oliver Upton
2023-05-19  8:46 ` Marc Zyngier
2023-05-19  8:46   ` Marc Zyngier
2023-05-19 13:22   ` Jean-Philippe Brucker
2023-05-19 13:22     ` Jean-Philippe Brucker
2023-05-24 12:40   ` Jean-Philippe Brucker
2023-05-24 12:40     ` Jean-Philippe Brucker
2023-05-24 12:49 ` Marc Zyngier
2023-05-24 12:49   ` Marc Zyngier

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.