|
|
Subscribe / Log in / New account

KVM: arm64: vgic-v3: MMIO-based LPI invalidation and co

From:  Marc Zyngier <maz-AT-kernel.org>
To:  linux-arm-kernel-AT-lists.infradead.org, kvm-AT-vger.kernel.org, kvmarm-AT-lists.cs.columbia.edu
Subject:  [PATCH v2 0/4] KVM: arm64: vgic-v3: MMIO-based LPI invalidation and co
Date:  Tue, 05 Apr 2022 19:23:23 +0100
Message-ID:  <20220405182327.205520-1-maz@kernel.org>
Cc:  James Morse <james.morse-AT-arm.com>, Suzuki K Poulose <suzuki.poulose-AT-arm.com>, Alexandru Elisei <alexandru.elisei-AT-arm.com>, Andre Przywara <andre.przywara-AT-arm.com>, Eric Auger <eric.auger-AT-redhat.com>, Oliver Upton <oupton-AT-google.com>, Lorenzo Pieralisi <lorenzo.pieralisi-AT-arm.com>, kernel-team-AT-android.com
Archive-link:  Article

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 driver patches.

* From v1 [1]:
  - Fixed CES and IR bit numbers (shrug...)
  - Plenty of small fixes all over the shop thanks to Oliver
  - Rebased on top of 5.18-rc1

[1] https://lore.kernel.org/r/20220314164044.772709-1-maz@ker...

Marc Zyngier (4):
  irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR,CES}
  KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
  KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
  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 | 125 ++++++++++++++++++++++++++---
 arch/arm64/kvm/vgic/vgic.h         |  10 +++
 include/kvm/arm_vgic.h             |   8 +-
 include/linux/irqchip/arm-gic-v3.h |   2 +
 7 files changed, 195 insertions(+), 39 deletions(-)

-- 
2.34.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds