mbox series

[00/10] MIPS: IPI Improvements

Message ID 20240616-b4-mips-ipi-improvements-v1-0-e332687f1692@flygoat.com (mailing list archive)
Headers show
Series MIPS: IPI Improvements | expand

Message

Jiaxun Yang June 16, 2024, 9:03 p.m. UTC
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,

Comments

Jiaxun Yang July 3, 2024, 8:37 a.m. UTC | #1
在2024年6月17日六月 上午5:03,Jiaxun Yang写道:
> 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.

Ping :-)

>
> 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>