Re: [PATCH] fix loop with disabled tasklets

Mathijs Mohlmann
2001-11-10T15:29:16Z

On Saturday 10 November 2001 16:03, Andrea Arcangeli wrote:
> just playing with the "softirq_raise" would be much simpler but I can
> see only one problem: we don't know what cpu the tasklet is scheduled
> into, so we don't know where to signal the local softirq.
>
> So it seems to fix the looping problem of disabled tasklets we should
> really dschedule the tasklet in tasklet_disable (and of course to forbid
> it to be scheduled when disabled in tasklet_schedule) and later to
> reschedule it in tasklet_enable.

Or add a cpu field to struct tasklet_struct.

> Infact at the moment it's even impossible to remove a tasklet from the
> queue if it remains disabled forever. tasklet_kill will deadlock on a
> tasklet that is disabled.
I think this is the responsability of the device driver writer (or who ever
uses it). AFAIK there is no defined behavior for this case. I vote for
removing the tasklet without it ever being run.

me