Re: [PATCH 0/6] Implement generic IPI support mechanism

Jiang Liu
2015-09-23T16:54:53Z

On 2015/9/23 22:49, Qais Yousef wrote:
> This RFC series attempts to implement a generic IPI layer for reserving and sending IPI.
>
> It is based on the discussion in this link
>
> https://lkml.org/lkml/2015/8/26/713
>
> This series deals with points #1 and #2 only. Since I'm not the irq expert, I'm hoping this
> series will give me early feedback and drive the discussion further about any potential
> tricky points.
>
> I tried to keep changes clean and small, but since this is just an RFC I might have missed
> few things.
>
> Thomas I hope I didn't stray far from what you had in mind :-)
>
> My only testing so far is having SMP linux booting.
Hi Qais,
Thanks for doing this, but the change is a little bigger than
my expectation. Could we achieve this by:
1) extend irq_chip to support send_ipi operation
2) reuse existing irqdomain allocation interfaces to allocate IPI IRQ
3) arch code to create an IPI domain for IPI allocations
4) IRQ core provides some helpers to help arch code to implement IPI
irqdomain
I think that may make the change smaller and more clear.
Thanks!
Gerry

>
> Qais Yousef (6):
> irqdomain: add new IRQ_DOMAIN_FLAGS_IPI
> irqdomain: add a new send_ipi() to irq_domain_ops
> irqdomain: add struct irq_hwcfg and helper functions
> irq: add a new generic IPI handling code to irq core
> irqchip: mips-gic: add a IPI hierarchy domain
> irqchip: mips-gic: use the new generic IPI API
>
> arch/mips/kernel/smp-gic.c | 37 ++--
> drivers/irqchip/Kconfig | 1 +
> drivers/irqchip/irq-mips-gic.c | 189 ++++++++++++++++++---
> include/linux/irqchip/mips-gic.h | 3 +-
> include/linux/irqdomain.h | 67 ++++++++
> kernel/irq/irqdomain.c | 352 +++++++++++++++++++++++++++++++++++++++
> 6 files changed, 601 insertions(+), 48 deletions(-)
>