Hi, >> >> > >> > On Wed, May 7, 2008 at 12:55 PM, Peter Teoh >> <htmldeveloper@xxxxxxxxx> > wrote: >> >> Not sure why....but under the drivers directory, u can see a lot >> more >> tasklet than kthread_create(). >> >> >> >> Huh? I'm not sure if I understand this right ... But I thought they >> are completely different things (rather than two comparable items). >> >> kthread_create() is to create a kernel thread (A thread that'll >> always execute in kernel mode and will have no user context). Where >> as tasklet is a mechanism to implement bottom halves - hence they >> are generally "scheduled" to be executed in ISRs. They are run upon >> return from IRQ or by ksoftirq. >> >> Did I understand the question right? >> >> Rajat >> > > Yes, u are right. And my questions rightfully may not have any > specific answer....case by case basis. Specifically I am looking for > rewriting the tasklets as kernelthreads, if possible. Tasklets does > not migrate from CPU to CPU, right? whereas kernelthread do, so it > may provide better load balancing? Yes, but you really won't write a code that needs load balancing, in a tasklet. In fact you would often want the tasklet to run on the same CPU (per-CPU variables, better cache hit etc.). Tasklets are a bottom half mechanism to shorten the ISR and yet be able to respond to interrupts quickly. > > Correct me if wrong...thanks. Kernel threads aren't meant to be a replacement for tasklets. They have completely different characteristics and objectives. And there are restrictions that apply to tasklets (no sleeping etc.). Although work queues (another bottom half mechanism) and kernel threads can share some amount of common things, since work queues are in process context. Thanks, Rajat -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ