When to use threaded interrupts?

Greg KH greg at kroah.com
Tue Sep 15 15:05:13 EDT 2015


On Tue, Sep 15, 2015 at 09:02:24PM +0300, Kosta Zertsekel wrote:
> >> On 10 September 2015 at 20:49, Kosta Zertsekel <zertsekel at gmail.com>
> >> Also, I see that in 4.2 there are only ~76 drivers that use threaded
> >> interrupt:
> >> ```
> >> $ git grep -l IRQ_WAKE_THREAD | sort | grep -v "\.h" | wc -l
> >> 76
> >> ```
> 
> > On Sun, Sep 13, 2015 at 2:16 PM, Rami Rosen <roszenrami at gmail.com> wrote:
> > This kernel and older ones include device drivers which use threaded IRQs
> > (call request_threaded_irq(), etc).
> > For example, many of the driver under drivers/input/touchscreen are
> > using threaded IRQs:
> > Following link is from kernel 3.18:
> > http://lxr.free-electrons.com/source/drivers/input/touchscreen/ucb1400_ts.c?v
> =3.18
> >
> > How did you came to the conclusion that this kernel does not support
> > threaded IRQs ? could it be that you simply do not use device drivers
> > that use this mechanism ?
> 
> In the given touch screen driver request_threaded_irq() provides NULL
> for the thread function pointer. Hence, the non-threaded IRQ mechanism
> is actually being used.  This is why I grepped for IRQ_WAKE_THREAD and
> not for request_threaded_irq.
> 
> So, the questions remains.
> Why only ~76 drivers use the threaded IRQ mechanism?

Because people have not converted older code to the newer mechanism.

> What are the cons of the threaded IRQ mechanism?

Slower throughput and added complexity.



More information about the Kernelnewbies mailing list