Re: Tasklet vs workqueues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux