On Tue, May 13, 2014 at 2:18 PM, Vishwas Srivastava <vishu.kernel@xxxxxxxxx> wrote: > Appreciate the quick response.. > > Hi All, > i am concerned about the scheduling the tasklet. The running of > the tasklet is anyway controlled by the kernel at its own dissertation. > But scheduling can be done from anywhere?? Correct? > I think by the next tick it would run. Since when you do tasklet_schedule you are setting the softirq pending flag. > Also can > Tasklets can be used for "any" deferred work or it is strictly stick to the > work which can not be done in the "top" half?? Really depends, what I think is that you still wouldn't want to do too much in tasklet, if it's heavy processing better give it a work-queue. So basically use tasklet as a breakup of your top half only. That timely things still are done quick indeed just not that quick. > For example, if there is some work which is prepared ready by a kernel > thread (but thread dont want to process it immediately, rather want to > deffer it for sometime) and the intention is to process this "prapared work" > at some later time. In the situation like this, can we use the tasklet to do > this? queue_delayed_work? or maybe you can do just a kthread_create only for the thread and wakeup_process(<your_kthread>) when you want to run it. You can do anything inside the code that's upto you, only rule is no sleepy things, and no copy_to_ or copy_from both can sleep and both require process context which you don't have. Besides the no sleeping rule, you can do whatever you like. By scheduling, I mean scheduling the current code by explicitly calling schedule or some other sleeping function call. But you can wake_up, tasklet_schedule, complete, complete_all etc. you can do kmalloc, don't forget GFP_ATOMIC, but no vmalloc. You can do memcpy, but no copy_to/copy_from > > > > > > On Tue, May 13, 2014 at 6:28 AM, Pranay Srivastava <pranjas@xxxxxxxxx> > wrote: >> >> >> On May 13, 2014 2:36 AM, "Vishwas Srivastava" <vishu.kernel@xxxxxxxxx> >> wrote: >> > >> > Hi All, >> > This may sound a dumb question. I just want to know if a >> > tasklet can be scheduled from a kernel thread. >> >> You can do tasklet_schedule in case I am getting your question. >> >> > what are the pros and crons of doing so? >> >> Don't sleep or schedule the tasklet code. It needs to be atomic since it >> runs via TASKLET_SOFTIRQ. >> >> > thanks, >> > Vishwas S >> > >> > _______________________________________________ >> > Kernelnewbies mailing list >> > Kernelnewbies@xxxxxxxxxxxxxxxxx >> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >> > > > -- ---P.K.S _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies