On Sat, Jul 30, 2011 at 10:45 PM, Dave Hylands <dhylands@xxxxxxxxx> wrote: > 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, so we can conclude like tasklets some times runs in process context(kthread context) but that time contextswtiching is disabled. > 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