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

From: Qais Yousef
Date: Thu Sep 24 2015 - 04:39:48 EST

On 09/23/2015 05:54 PM, Jiang Liu wrote:
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

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
I think that may make the change smaller and more clear.

Can you be more specific about 2 please? I tried to reuse the hierarchy irqdomain alloc function. One major difference when allocating IPI than a normal irq is that it's dynamic. The caller doesn't know what hwirq number it needs. It actually shouldn't.

The idea is for the user to just say 'I want an IPI to a CPUAFFINITY' from DT and get a virq in return to send an IPI to the target CPU(s). Also I think we need to accommodate the possibility of having more than 1 IPI controller.

Can you provide more pointers please?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at