]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
authorMarc Zyngier <maz@kernel.org>
Tue, 5 Apr 2022 18:23:26 +0000 (19:23 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 4 May 2022 13:09:53 +0000 (14:09 +0100)
commitf5a7fe970a63ab3749a163fed41ee9701d2520f0
tree6ad52be9cbdd181135c5a4b2baa5af4bbd7425d6
parent124c0c3a70937fe70f0cc986cfe806213c51230f
KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation

Since GICv4.1, it has become legal for an implementation to advertise
GICR_{INVLPIR,INVALLR,SYNCR} while having an ITS, allowing for a more
efficient invalidation scheme (no guest command queue contention when
multiple CPUs are generating invalidations).

Provide the invalidation registers as a primitive to their ITS
counterpart. Note that we don't advertise them to the guest yet
(the architecture allows an implementation to do this).

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Oliver Upton <oupton@google.com>
Link: https://lore.kernel.org/r/20220405182327.205520-4-maz@kernel.org
arch/arm64/kvm/vgic/vgic-its.c
arch/arm64/kvm/vgic/vgic-mmio-v3.c
arch/arm64/kvm/vgic/vgic.h
include/kvm/arm_vgic.h