Tasklet vs workqueues

Vladimir Murzin murzin.v at gmail.com
Tue Aug 2 04:03:12 EDT 2011


On Mon, Aug 1, 2011 at 5:54 PM, santhosh kumars <karuna.linux at gmail.com> wrote:
> On Sat, Jul 30, 2011 at 10:45 PM, Dave Hylands <dhylands at gmail.com> wrote:
>> Hi Santosh,
>>
>> On Sat, Jul 30, 2011 at 5:24 AM, santhosh kumars <karuna.linux at gmail.com> 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 at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

Hi Santosh,

AFAIK one more difference is that tasklets can not be migrated through CPUs.



More information about the Kernelnewbies mailing list