HI Gautam, >> I am working on a Block driver. I am required to do a pretty heavy >> computation in the interrupt context. >> >> I tried to schedule the kernel work queue in the driver from the >> bottomhalf. >> It works. >> >> As Tasklet is the next high priority job after interrupts, I suspect if >> anything is wrong in incorporating this method. >> Please see the pseudo code below. >> >> Pseudo code >> ------------ >> /* ISR */ >> intsrv() >> { >> ...... >> tasklet_schedule(&tlet); >> } >> >> /* bottom half */ >> static void bottomhalf(ulong vptr) >> { >> ...... >> ...... >> schedule_work(&tqueue); /* call to Work queue */ >> } >> > >as far as I can understand, you are sheduling the tasklet, which is >just responsible to further shedule the work on work queue. Why dont >you directly do your pending work in tasklet itself. That is where I used to do that earlier (in taskelet). It created some delay. I assume the tasklet is high priority job that task queue. So, I used it assuming it gives control to the console faster. I think I am able to see some small difference in getting the control over the console little bit faster than usual. Regards, Mukund Jampala >> This is how it works and finally the assigned work queue function will >> be called. Please give your ideas on this kind of an approach. >> >> Regards, >> Mukund Jampala >> >> -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/