Message ID | 20240705-b4-mips-ipi-improvements-v2-0-2d50b56268e8@flygoat.com (mailing list archive) |
---|---|
Headers | show |
Series | MIPS: IPI Improvements | expand |
Hi Jiaxun On Fri, Jul 05, 2024 at 10:16:52PM +0800, Jiaxun Yang wrote: > 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 CoreFPGA3 47K MT/ > interAPtiv MPF, 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). Performed a boot-up and some smoke multi-threaded tests on a SoC with 2x MIPS P5600 cores and MIPS GIC. No immediate problem was found. So Tested-by: Serge Semin <fancer.lancer@gmail.com> -Serge(y) > > Please review. > Thanks > > Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> > --- > Changes in v2: > - Build warning fixes > - Massage commit messages > - Link to v1: https://lore.kernel.org/r/20240616-b4-mips-ipi-improvements-v1-0-e332687f1692@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 | 111 ++++++------------ > arch/mips/fw/arc/init.c | 1 - > 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/octeon/octeon.h | 2 + > 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 | 2 + > arch/mips/kernel/smp-mt.c | 70 +++++++++++ > arch/mips/kernel/smp.c | 213 +++++++++++++++++++++------------- > arch/mips/loongson64/smp.c | 52 +++++---- > arch/mips/mm/c-octeon.c | 3 +- > 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 +++++++++++++--------------------- > 25 files changed, 596 insertions(+), 531 deletions(-) > --- > base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233 > change-id: 20240616-b4-mips-ipi-improvements-f8c86b1dc677 > > Best regards, > -- > Jiaxun Yang <jiaxun.yang@flygoat.com> >
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 CoreFPGA3 47K MT/ interAPtiv MPF, 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> --- Changes in v2: - Build warning fixes - Massage commit messages - Link to v1: https://lore.kernel.org/r/20240616-b4-mips-ipi-improvements-v1-0-e332687f1692@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 | 111 ++++++------------ arch/mips/fw/arc/init.c | 1 - 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/octeon/octeon.h | 2 + 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 | 2 + arch/mips/kernel/smp-mt.c | 70 +++++++++++ arch/mips/kernel/smp.c | 213 +++++++++++++++++++++------------- arch/mips/loongson64/smp.c | 52 +++++---- arch/mips/mm/c-octeon.c | 3 +- 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 +++++++++++++--------------------- 25 files changed, 596 insertions(+), 531 deletions(-) --- base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233 change-id: 20240616-b4-mips-ipi-improvements-f8c86b1dc677 Best regards,