Since revision IHI0069G of the GICv3 spec, an implementation is allowed to implement MMIO-based LPI invalidation, without having to support RVPEI (which is essentially a GICv4.1 feature). This has the potential to make workloads using heavy LPI invalidation fare a bit better, as they don't need to lock the access to the command queue. Similarly, an implementation can now expose that it allows LPIs to be turned off, something that we always supported. This series implements both these features, exposing the new GICR_{INVLPIR,INVALLR,SYNCR} registers, transitions of the GICR_CTLR.RWP bit on LPI disabling, and finally exposes these to userspace and the guest with a new GICD_IIDR revision (and the ability to save/restore it). This series has been extremely useful to debug related GIC features, and will be complemented by a few GIC patches. Patches on top of 5.17-rc3. M. Marc Zyngier (4): irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR,CES} KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR,CES} as a new GICD_IIDR revision arch/arm64/kvm/vgic/vgic-init.c | 7 +- arch/arm64/kvm/vgic/vgic-its.c | 64 ++++++++++------ arch/arm64/kvm/vgic/vgic-mmio-v2.c | 18 ++++- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 119 ++++++++++++++++++++++++++--- arch/arm64/kvm/vgic/vgic.h | 5 ++ include/kvm/arm_vgic.h | 8 +- include/linux/irqchip/arm-gic-v3.h | 2 + 7 files changed, 184 insertions(+), 39 deletions(-) -- 2.34.1