On Tue, May 13, 2008 at 4:40 PM, Rajat Jain <Rajat.Jain@xxxxxxxxxxxx> wrote: > 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. > Sorry, just check the source code, wrong comparison :-). kernel_thread() called do_fork() and do_fork() (kernel/fork.c) will create an image copy....wow...too much overhead.. A better comparison will be tasklet vs workqueue.....sorry for that...I think that should be better: http://lkml.org/lkml/2007/6/22/6 > Thanks, > > Rajat > -- Regards, Peter Teoh -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ