Hung Task Timeout

Philipp Ittershagen p.ittershagen at googlemail.com
Tue Apr 17 03:36:33 EDT 2012


On Tue, Apr 17, 2012 at 6:26 AM, mani <manishrma at gmail.com> wrote:
> So is that means that TASK_UNINTERRUPTIBLE will not get schedule by the
> scheduler ?
> Can anyone give the detail information what's going on in backyard ?

An explanation of the different states is given in [1]:

A process can sleep in two different modes, interruptible and
uninterruptible. In an interruptible sleep, the process could be woken
up for processing of signals. In an uninterruptible sleep, the process
could not be woken up other than by issuing an explicit wake_up.
Interruptible sleep is the preferred way of sleeping, unless there is
a situation in which signals cannot be handled at all, such as device
I/O.

So, unless you absolutely cannot handle singals, you should use
TASK_INTERRUPTIBLE and check for signals using signal_pending() (many
code examples use this in the ldd3 book).

TASK_UNINTERRUPTIBLE consequently means that your thread is not
scheduled unless you explicitly wake up the thread.


Greetings,

  Philipp

[1]: http://www.linuxjournal.com/article/8144?page=0,0



More information about the Kernelnewbies mailing list