Hi Santosh, On Sat, Jul 30, 2011 at 5:24 AM, santhosh kumars <karuna.linux@xxxxxxxxx> wrote: > Hi All, > I took following lines from robert love linux kernel development. > " If you need a schedulable entity to perform your bottom-half > processing, you need > work queues.They are the only bottom-half mechanisms that run in > process context, and > thus, the only ones that can sleep.This means they are useful for > situations in which you > need to allocate a lot of memory, obtain a semaphore, or perform block > I/O. If you do > not need a kernel thread to handle your deferred work, consider a > tasklet instead ." > > Here some times tasklets also runs in kernel thread context(by > ksoftirqd/n).So I want to know > what is the exact difference between workqueue and tasklet. A tasklet is something that in some OSes, might be called a software IRQ. It runs with interrupts enabled, but context switches are disabled. They are normally associated with device drivers where there is some extended processing that needs to be done, but perhaps not from an interrupt handler. http://www.xml.com/ldd/chapter/book/ch09.html#t5 The workqueues are documented here: http://lwn.net/Articles/11360/ Items in a workqueue are executed from a thread context (whereas tasklets are sort of half way between interrupt context and thread context). You can't perform blocking operations from a tasklet, whereas you can from a workqueue. Both were found using simple google searches. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies