[PATCH 0/7] Partitioned percpu IRQ rework

From: Marc Zyngier
Date: Tue Apr 24 2018 - 10:38:08 EST


Partitioned percpu interrupts are a very niche sport, even in the ARM
world. They occur when each CPU have a private device connected to a
per-CPU interrupt, but not all the devices are the same.

The best example of this occurs on the Rockchip rk3399 SoC, where all
the CPUs have a PMU connected to the same PPI (very good), except that
because this is a big-little system, we end-up with two different PMUs
(quite bad).

We already have some code to deal with this, but it integrates badly
with the debug infrastructure, and makes assumptions about the trigger
of the source interrupt (see the use of IRQ_TYPE_NONE in the GICv3
driver).

This series provides a better integration with debugfs, and cleans up
some of the most horrible parts of this code by simply moving the
plugging of the partition to the activate callback.

This has been tested on a (specially hack-up) KVM guest.

Thanks,

M.

Marc Zyngier (7):
genirq/debugfs: Print percpu affinity for percpu_devid interrupts
genirq/debugfs: Use irq_print_chip method if available
genirq/debugfs: Allow irq domain name to be overriden
irqchip/partition-percpu: Override domain name in debugfs
irqchip/partition-percpu: Refactor backend method calling
irqchip/partition-percpu: Allow chained_desc to be NULL
irqchip/partition-percpu: Move allocation of chained interrupt to
activate

drivers/irqchip/irq-gic-v3.c | 31 ++----
drivers/irqchip/irq-partition-percpu.c | 147 ++++++++++++++++++---------
include/linux/irqchip/irq-partition-percpu.h | 4 +-
include/linux/irqdomain.h | 1 +
kernel/irq/debugfs.c | 13 ++-
kernel/irq/irqdomain.c | 14 +++
6 files changed, 138 insertions(+), 72 deletions(-)

--
2.14.2