| From: |
| Marc Zyngier <maz-AT-kernel.org> |
| To: |
| linux-kernel-AT-vger.kernel.org, linux-arm-kernel-AT-lists.infradead.org, linux-acpi-AT-vger.kernel.org |
| Subject: |
| [PATCH v4 00/26] genirq: Add support for percpu_devid IRQ affinity |
| Date: |
| Mon, 20 Oct 2025 13:29:17 +0100 |
| Message-ID: |
| <20251020122944.3074811-1-maz@kernel.org> |
| Cc: |
| Thomas Gleixner <tglx-AT-linutronix.de>, Mark Rutland <mark.rutland-AT-arm.com>, Will Deacon <will-AT-kernel.org>, "Rafael J. Wysocki" <rafael-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Saravana Kannan <saravanak-AT-google.com>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org>, Sven Peter <sven-AT-kernel.org>, Janne Grunau <j-AT-jannau.net>, Suzuki K Poulose <suzuki.poulose-AT-arm.com>, James Clark <james.clark-AT-linaro.org>, Jonathan Cameron <jonathan.cameron-AT-huawei.com>, Jinjie Ruan <ruanjinjie-AT-huawei.com>, Alexandru Elisei <alexandru.elisei-AT-arm.com> |
| Archive-link: |
| Article |
This is the fourth version of this series, originally posted at [1],
which aims at allowing percpu_devid interrupt requests on the basis of
an affinity mask. See the original submission for the details of why
this is a desirable outcome.
From v3, we have some additional tidying up, thanks to Jonathan's
review, and a bunch of tags -- see changelog for details.
FWIW, I've pushed a branch at [0].
* From v3 [3]:
- Additional cleanups in of_irq_get_affinity() (Jonathan)
- Rebased on 6.18-rc2
- Collected Abs, Rbs and Tbs, with thanks (Raphael, Jonathan,
Jinjie, Suzuki, Sven, Will)
* From v2 [2]:
- Turned of_node_to_fwnode() usage to of_fwnode_handle() (Jonathan)
- Added a patch to finally kill of_node_to_fwnode()
- Tidied-up documentation, comments and formatting (Jonathan)
- Collected ABs and Rbs, with thanks (Jonathan, Suzuki, Sven)
* From v1 [1]:
- Fixed NMI handling by getting rid of the NMI-specific flow
handler, which was pretty useless anyway (Will)
- As a result, killed a metric buttload worth of GICv3 code
- Moved irq_fwspec out of irq_fwspec_info, and passed it as a
parameter to irq_get_fwspec_info(), renamed from irq_get_info(),
and applied some generous sanitisation of the structure (Thomas)
- Dropped the rather useless fwspec validity flag (Thomas)
- Rejigged the PMU per-CPU handling to better deal with the DT/ACPI
differences, and drop some now useless patches (Will)
- Plenty of cosmetic rework (Raphael, Thomas)
[0] git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/ppi-affinity
[1] https://lore.kernel.org/r/20250908163127.2462948-1-maz@ke...
[2] https://lore.kernel.org/r/20250915085702.519996-1-maz@ker...
[3] https://lore.kernel.org/r/20250922082833.2038905-1-maz@ke...
Marc Zyngier (25):
irqdomain: Add firmware info reporting interface
ACPI: irq: Add IRQ affinity reporting interface
of/irq: Add IRQ affinity reporting interface
platform: Add firmware-agnostic irq and affinity retrieval interface
irqchip/gic-v3: Add FW info retrieval support
irqchip/apple-aic: Add FW info retrieval support
coresight: trbe: Convert to new IRQ affinity retrieval API
perf: arm_pmu: Convert to new IRQ affinity retrieval API
perf: arm_spe_pmu: Convert to new IRQ affinity retrieval API
irqchip/gic-v3: Switch high priority PPIs over to
handle_percpu_devid_irq()
genirq: Kill handle_percpu_devid_fasteoi_nmi()
genirq: Merge irqaction::{dev_id,percpu_dev_id}
genirq: Factor-in percpu irqaction creation
genirq: Add affinity to percpu_devid interrupt requests
genirq: Update request_percpu_nmi() to take an affinity
genirq: Allow per-cpu interrupt sharing for non-overlapping affinities
genirq: Add request_percpu_irq_affinity() helper
perf: arm_spe_pmu: Request specific affinities for percpu IRQ
coresight: trbe: Request specific affinities for percpu IRQ
irqchip/gic-v3: Drop support for custom PPI partitions
irqchip/apple-aic: Drop support for custom PMU irq partitions
irqchip: Kill irq-partition-percpu
genirq: Kill irq_{g,s}et_percpu_devid_partition()
irqdomain: Kill of_node_to_fwnode() helper
perf: arm_pmu: Kill last use of per-CPU cpu_armpmu pointer
Will Deacon (1):
perf: arm_pmu: Request specific affinities for percpu NMI/IRQ
arch/arm64/kernel/smp.c | 2 +-
drivers/acpi/irq.c | 19 ++
drivers/base/platform.c | 60 ++++-
drivers/hwtracing/coresight/coresight-trbe.c | 9 +-
drivers/irqchip/Kconfig | 4 -
drivers/irqchip/Makefile | 1 -
drivers/irqchip/irq-apple-aic.c | 56 +++--
drivers/irqchip/irq-gic-v3.c | 224 +++++------------
drivers/irqchip/irq-partition-percpu.c | 241 -------------------
drivers/of/irq.c | 20 ++
drivers/perf/arm_pmu.c | 49 ++--
drivers/perf/arm_pmu_acpi.c | 2 +-
drivers/perf/arm_pmu_platform.c | 20 +-
drivers/perf/arm_pmuv3.c | 2 +-
drivers/perf/arm_spe_pmu.c | 13 +-
include/linux/acpi.h | 7 +
include/linux/interrupt.h | 24 +-
include/linux/irq.h | 5 -
include/linux/irqchip/irq-partition-percpu.h | 53 ----
include/linux/irqdesc.h | 1 -
include/linux/irqdomain.h | 33 ++-
include/linux/of_irq.h | 7 +
include/linux/perf/arm_pmu.h | 6 +-
include/linux/platform_device.h | 2 +
kernel/irq/chip.c | 33 +--
kernel/irq/irqdesc.c | 24 +-
kernel/irq/irqdomain.c | 32 ++-
kernel/irq/manage.c | 125 +++++++---
28 files changed, 419 insertions(+), 655 deletions(-)
delete mode 100644 drivers/irqchip/irq-partition-percpu.c
delete mode 100644 include/linux/irqchip/irq-partition-percpu.h
--
2.47.3