![]() | |||||||||||
Messages in this thread |
Hi, On Wed, 27 Aug 2003 kuznet@ms2.inr.ac.ru wrote: > Hello! > > > Hmm, actually, no. On UP, yes. But on SMP, you might tasklet_kill > > while the tasklet is running, but before it has had a chance to > > tasklet_schedule itself. tasklet_schedule will have no effect in > > this case. > > > > Alexey, if my observation is correct, the property > > > > | * If tasklet_schedule() is called, then tasklet is guaranteed > > | to be executed on some cpu at least once after this. > > > > does not hold if using tasklet_kill on SMP. > > It still holds. tasklet_kill just waits for completion of scheduled > events. Well, it _assumes_ that cpu which calls tasklet_schedule > does not try to wake the tasklet after death. But it is from area > of pure scholastics already: waker and killer have to synchronize in > some > way anyway. I didn't really understand this one. What Werner says seems correct though. For recursive tasklets one of the two things are bound to happen. Either the tasklet_kill hangs (which will happen on UP) or one (read last) tasklet_schedule is not honoured (which will happen on SMP). On SMP the user context tasklet_kill gets a chance to exit the "while (test_bit(TASKLET_STATE_SCHED, &t->state))" loop as it gets a chance to run parallely with tasklet_action in the small window (during which TASKLET_STATE_SCHED is not set) that I mentioned in one of my earlier mails. So I believe that at least one (to be precise, the last one called before tasklet dies) tasklet_schedule is not honoured. Thanx, tomar > > 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/ > - 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/ | ||||||||||
| Last update: 2005-03-22 13:48 [from the cache] ©2003-2008 | |||||||||||