Re: Tasklet usage?

From: Neil Horman
Date: Fri Oct 15 2004 - 08:45:16 EST


Pierre Ossman wrote:
My driver needs to spend a lot of time inside the interrupt handler (draining a FIFO). I suspect this might cause problems blocking other interrupt handlers so I was thinking about moving this into a tasklet.
Not being to familiar with tasklets, a few questions pop up.

* Will a tasklet scheduled from the interrupt handler be executed as soon as interrupt handling is done?
I don't _think_ they are guaranteed to be executed immediately after the interrupt handler top half is complete, but they will execute before the next return to user space (read: they will complete before user processes run again).

* Can tasklets be preempted?
A tasklet can get preempted by a hard interrupt, but tasklets run in interrupt context, so don't do anything in a tasklet that can call schedule.
* If a tasklet gets scheduled while running, will it be executed once more? (Needed if I get another FIFO interrupt while the tasklet is just exiting).

IIRC, a tasklet will execute once for every time tasklet_schedule is called.

HTH
Neil

--
/***************************************************
*Neil Horman
*Software Engineer
*Red Hat, Inc.
*nhorman@xxxxxxxxxx
*gpg keyid: 1024D / 0x92A74FA1
*http://pgp.mit.edu
***************************************************/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/