Messages in this thread | | | From | kuznet@ms2 ... | Subject | Re: tasklet_kill will always hang for recursive tasklets on a UP | Date | Thu, 28 Aug 2003 19:53:11 +0400 (MSD) |
| |
Hello!
> Here we have it! In my opintion, the line > > clear_bit(TASKLET_STATE_SCHED, &t->state); > > is just a _BUG_.
No, really. The sense of tasklet_kill() is that tasklet is under complete control of caller upon exit from it. This clear_bit just makes some (only marginally useful) reinitialization for the case the user will want to reuse the struct. Essentially, after tasklet_unlock_wait() you can do everything with the struct, it is not an alive object anymore.
> 2. we should find some means to make it usable for recursive tasklets.
I would not say it is easy. When tasklet is enqueued on another cpu you have no way to stop it unless you are in process context, where you can sit and wait for completion.
Alexey - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |