OSDN Git Service

irqchip/gic-v3-its: Limit scope of VPE mapping to be per ITS
authorMarc Zyngier <marc.zyngier@arm.com>
Sun, 8 Oct 2017 17:50:36 +0000 (18:50 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 19 Oct 2017 10:22:42 +0000 (11:22 +0100)
commit2247e1bf70639642b1c1375aa9176ccd95736400
treedb6503ddcfcce7581ac918b9c9770329d491eb82
parent75fd951be846a494b0f01f80e859dcb74970f0d5
irqchip/gic-v3-its: Limit scope of VPE mapping to be per ITS

So far, we map all VPEs on all ITSs. While this is not wrong,
this is quite a big hammer, as moving a VPE around requires
all ITSs to be synchronized. Needles to say, this is an
expensive proposition.

Instead, let's switch to a mode where we issue VMAPP commands
only on ITSs that are actually involved in reporting interrupts
to the given VM.

For that purpose, we refcount the number of interrupts are are
mapped for this VM on each ITS, performing the map/unmap
operations as required. It then allows us to use this refcount
to only issue VMOVP to the ITSs that need to know about this
VM.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c
include/linux/irqchip/arm-gic-v4.h