linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] KVM: arm64: Add LR overflow infrastructure (the dregs, the bad and the ugly)
@ 2025-11-17  9:15 Marc Zyngier
  2025-11-17  9:15 ` [PATCH v3 1/5] KVM: arm64: GICv3: Don't advertise ICH_HCR_EL2.En==1 when no vgic is configured Marc Zyngier
                   ` (7 more replies)
  0 siblings, 8 replies; 28+ messages in thread
From: Marc Zyngier @ 2025-11-17  9:15 UTC (permalink / raw)
  To: kvmarm, linux-arm-kernel, kvm
  Cc: Joey Gouly, Suzuki K Poulose, Oliver Upton, Zenghui Yu,
	Christoffer Dall, Fuad Tabba, Mark Brown

This is a follow-up to the original series [1] (and fixes [2][3])
with a bunch of bug-fixes and improvements. At least one patch has
already been posted, but I thought I might repost it as part of a
series, since I accumulated more stuff:

- The first patch addresses Mark's observation that the no-vgic-v3
  test has been broken once more. At some point, we'll have to retire
  that functionality, because even if we keep fixing the SR handling,
  nobody tests the actual interrupt state exposure to userspace, which
  I'm pretty sure has badly been broken for at least 5 years.

- The second one addresses a report from Fuad that on QEMU,
  ICH_HCR_EL2.TDIR traps ICC_DIR_EL1 on top of ICV_DIR_EL1, leading to
  the host exploding on deactivating an interrupt. This behaviour is
  allowed by the spec, so make sure we clear all trap bits

- Running vgic_irq in an L1 guest (the test being an L2) results in a
  MI storm on the host, as the state synchronisation is done at the
  wrong place, much like it was on the non-NV path before it was
  reworked. Apply the same methods to the NV code, and enjoy much
  better MI emulation, now tested all the way into an L3.

- Nuke a small leftover from previous rework.

- Force a read-back of ICH_MISR_EL2 when disabling the vgic, so that
  the trap prevents too many spurious MIs in an L1 guest, as the write
  to ICH_HCR_EL2 does exactly nothing on its own when running under
  FEAT_NV2.

Oliver: this is starting to be a large series of fixes on top of the
existing series, plus the two patches you have already added. I'd be
happy to respin a full v4 with the fixes squashed into their original
patches. On the other hand, if you want to see the history in its full
glory, that also works for me.

[1] https://msgid.link/20251109171619.1507205-1-maz@kernel.org
[2] https://msgid.link/20251113172524.2795158-1-maz@kernel.org
[3] https://lore.kernel.org/kvmarm/86frahu21h.wl-maz@kernel.org

Marc Zyngier (5):
  KVM: arm64: GICv3: Don't advertise ICH_HCR_EL2.En==1 when no vgic is
    configured
  KVM: arm64: GICv3: Completely disable trapping on vcpu exit
  KVM: arm64: GICv3: nv: Resync LRs/VMCR/HCR early for better MI
    emulation
  KVM: arm64: GICv3: Remove vgic_hcr workaround handling leftovers
  KVM: arm64: GICv3: Force exit to sync ICH_HCR_EL2.En

 arch/arm64/include/asm/kvm_hyp.h     |  1 +
 arch/arm64/kvm/hyp/vgic-v3-sr.c      | 11 +++-
 arch/arm64/kvm/vgic/vgic-v3-nested.c | 78 ++++++++++++++++------------
 arch/arm64/kvm/vgic/vgic-v3.c        |  3 ++
 arch/arm64/kvm/vgic/vgic.c           |  6 ++-
 arch/arm64/kvm/vgic/vgic.h           |  1 +
 6 files changed, 62 insertions(+), 38 deletions(-)

-- 
2.47.3



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

end of thread, other threads:[~2025-11-19 10:38 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-17  9:15 [PATCH v3 0/5] KVM: arm64: Add LR overflow infrastructure (the dregs, the bad and the ugly) Marc Zyngier
2025-11-17  9:15 ` [PATCH v3 1/5] KVM: arm64: GICv3: Don't advertise ICH_HCR_EL2.En==1 when no vgic is configured Marc Zyngier
2025-11-17 10:34   ` Fuad Tabba
2025-11-17 11:28     ` Marc Zyngier
2025-11-17 11:29   ` Fuad Tabba
2025-11-17  9:15 ` [PATCH v3 2/5] KVM: arm64: GICv3: Completely disable trapping on vcpu exit Marc Zyngier
2025-11-17 10:36   ` Fuad Tabba
2025-11-17  9:15 ` [PATCH v3 3/5] KVM: arm64: GICv3: nv: Resync LRs/VMCR/HCR early for better MI emulation Marc Zyngier
2025-11-17 11:24   ` Fuad Tabba
2025-11-17 11:34     ` Marc Zyngier
2025-11-17 11:37       ` Fuad Tabba
2025-11-17  9:15 ` [PATCH v3 4/5] KVM: arm64: GICv3: Remove vgic_hcr workaround handling leftovers Marc Zyngier
2025-11-17 11:25   ` Fuad Tabba
2025-11-17  9:15 ` [PATCH v3 5/5] KVM: arm64: GICv3: Force exit to sync ICH_HCR_EL2.En Marc Zyngier
2025-11-17 11:35   ` Fuad Tabba
2025-11-17 11:42     ` Marc Zyngier
2025-11-17 11:48       ` Fuad Tabba
2025-11-18  7:16   ` Oliver Upton
2025-11-18  8:54     ` Marc Zyngier
2025-11-17  9:40 ` [PATCH v3 0/5] KVM: arm64: Add LR overflow infrastructure (the dregs, the bad and the ugly) Fuad Tabba
2025-11-17  9:54   ` Marc Zyngier
2025-11-17 10:18     ` Fuad Tabba
2025-11-17 12:54       ` Fuad Tabba
2025-11-18  7:20 ` Oliver Upton
2025-11-18 13:59   ` Fuad Tabba
2025-11-18 19:06     ` Marc Zyngier
2025-11-19 10:37       ` Fuad Tabba
2025-11-18 23:34 ` 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).