Messages in this thread | | | From | Marc Zyngier <> | Subject | [PATCH 0/7] Partitioned percpu IRQ rework | Date | Tue, 24 Apr 2018 15:36:11 +0100 |
| |
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
| |