[PATCH 00/10] MIPS: IPI Improvements

Jiaxun Yang
2024-06-16T21:03:30Z

Hi all,

This series improved general handling to MIPS IPI interrupts, made
IPI numbers scalable, and switch to IPI-MUX for all GERNERIC_IPI
users on mux.

It is a prerequisite for enabling IRQ_WORK for MIPS.

It has been tested on MIPS Boston I6500, malta SOC-It, Loongson-2K,
Cavium CN7130 (EdgeRouter 4), and an unannounced interaptiv UP MT
platform with EIC.

I don't really know broadcom platforms and SGI platforms well so
changes to those platforms are kept minimal (no functional change).

Please review.
Thanks

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
Jiaxun Yang (10):
MIPS: smp: Make IPI interrupts scalable
MIPS: smp: Manage IPI interrupts as percpu_devid interrupts
MIPS: smp: Provide platform IPI virq & domain hooks
MIPS: Move mips_smp_ipi_init call after prepare_cpus
MIPS: smp: Implement IPI stats
irqchip: irq-mips-gic: Switch to ipi_mux
MIPS: Implement get_mips_sw_int hook
MIPS: GIC: Implement get_sw_int hook
irqchip: irq-mips-cpu: Rework software IRQ handling flow
MIPS: smp-mt: Rework IPI functions

arch/mips/Kconfig | 2 +
arch/mips/cavium-octeon/smp.c | 109 +++++++-------------
arch/mips/generic/irq.c | 15 +++
arch/mips/include/asm/ipi.h | 71 +++++++++++++
arch/mips/include/asm/irq.h | 1 +
arch/mips/include/asm/irq_cpu.h | 3 +
arch/mips/include/asm/mips-gic.h | 10 ++
arch/mips/include/asm/smp-ops.h | 8 +-
arch/mips/include/asm/smp.h | 42 +++-----
arch/mips/kernel/irq.c | 21 ++++
arch/mips/kernel/smp-bmips.c | 43 ++++----
arch/mips/kernel/smp-cps.c | 1 +
arch/mips/kernel/smp-mt.c | 70 +++++++++++++
arch/mips/kernel/smp.c | 216 ++++++++++++++++++++++++---------------
arch/mips/loongson64/smp.c | 51 ++++-----
arch/mips/mm/c-octeon.c | 2 +-
arch/mips/sgi-ip27/ip27-smp.c | 15 +--
arch/mips/sgi-ip30/ip30-smp.c | 15 +--
arch/mips/sibyte/bcm1480/smp.c | 19 ++--
arch/mips/sibyte/sb1250/smp.c | 13 +--
drivers/irqchip/Kconfig | 2 +-
drivers/irqchip/irq-mips-cpu.c | 180 +++++++++-----------------------
drivers/irqchip/irq-mips-gic.c | 213 ++++++++++++++------------------------
23 files changed, 594 insertions(+), 528 deletions(-)
---
base-commit: a2a47d53ca1f74f60931487c27eeba3c17fb69c9
change-id: 20240616-b4-mips-ipi-improvements-f8c86b1dc677

Best regards,
--
Jiaxun Yang <jiaxun.yang@flygoat.com>