2015-12-03 19:25:36

by Yunhong Jiang

[permalink] [raw]
Subject: Can we conditionally force threading irq with primary and thread handler?

Hi, Thomas
On Commit 2a1d3ab8986d1b2 ("genirq: Handle force threading of irqs
with primary and thread handler"), even if the caller of
request_threaded_irq() provides a primary handler, that primary handler will
be invoked in thread context. This may cause some latency issue for high
real time requirement.

I checked the discussion on https://lkml.org/lkml/2015/9/19/372 with
Okuno and seems we need this change only if the irq is shared, otherwise, we
can still use Okuno's mechanism, am I right? Do you think it's ok to force
the primary handler for shared IRQ, otherwise, clear the IRQF_ONESHOT?

If yes, I will cook a patch for it.

Thanks
--jyh


2015-12-03 22:34:11

by Thomas Gleixner

[permalink] [raw]
Subject: Re: Can we conditionally force threading irq with primary and thread handler?

Yunhong,

On Thu, 3 Dec 2015, Yunhong Jiang wrote:

> Hi, Thomas
> On Commit 2a1d3ab8986d1b2 ("genirq: Handle force threading of irqs
> with primary and thread handler"), even if the caller of
> request_threaded_irq() provides a primary handler, that primary handler will
> be invoked in thread context. This may cause some latency issue for high
> real time requirement.
>
> I checked the discussion on https://lkml.org/lkml/2015/9/19/372 with
> Okuno and seems we need this change only if the irq is shared, otherwise, we
> can still use Okuno's mechanism, am I right? Do you think it's ok to force
> the primary handler for shared IRQ, otherwise, clear the IRQF_ONESHOT?

If you want to avoid that the primary handler is force threaded, then
you can indicate that with IRQF_NO_THREAD.

Thanks,

tglx

2015-12-03 22:57:05

by Yunhong Jiang

[permalink] [raw]
Subject: Re: Can we conditionally force threading irq with primary and thread handler?

On Thu, Dec 03, 2015 at 11:33:14PM +0100, Thomas Gleixner wrote:
> Yunhong,
>
> On Thu, 3 Dec 2015, Yunhong Jiang wrote:
>
> > Hi, Thomas
> > On Commit 2a1d3ab8986d1b2 ("genirq: Handle force threading of irqs
> > with primary and thread handler"), even if the caller of
> > request_threaded_irq() provides a primary handler, that primary handler will
> > be invoked in thread context. This may cause some latency issue for high
> > real time requirement.
> >
> > I checked the discussion on https://lkml.org/lkml/2015/9/19/372 with
> > Okuno and seems we need this change only if the irq is shared, otherwise, we
> > can still use Okuno's mechanism, am I right? Do you think it's ok to force
> > the primary handler for shared IRQ, otherwise, clear the IRQF_ONESHOT?
>
> If you want to avoid that the primary handler is force threaded, then
> you can indicate that with IRQF_NO_THREAD.

Thaks for reply.
Sure, will do that way. Just feel a bit weird with a valid thread_fn and a
IRQF_NO_THREAD flags.

Thanks
--jyh
>
> Thanks,
>
> tglx
>
>