Thanks Philipp for the explanation and the link. <br><br>But i Still have the same question:- <br><br><b><i>Do scheduler schedule the tasks with TASK_INTERRUPTIBLE state </i></b><b><i>? </i></b><br>As i know TASK_UNINTERRUPTIBLE &amp; TASK_INTERRUPTIBLE  both are not in the run queue <br>



and so both type of tasks should not being scheduled by the scheduler.<br>If YES, then why it is needed to schedule task in TASK_INTERRUPTIBLE state ?<br><br>What is the significance of the task-&gt;switch_count in the scheduler ?<br>

surely it got updated for the TASK_INTERRUPTIBLE task. <br>[kernel/hung_task.c]check_hung_task()<br><br>Thanks <br>Mani<br><br><br><div class="gmail_quote">On Tue, Apr 17, 2012 at 1:06 PM, Philipp Ittershagen <span dir="ltr">&lt;<a href="mailto:p.ittershagen@googlemail.com">p.ittershagen@googlemail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Apr 17, 2012 at 6:26 AM, mani &lt;<a href="mailto:manishrma@gmail.com">manishrma@gmail.com</a>&gt; wrote:<br>


&gt; So is that means that TASK_UNINTERRUPTIBLE will not get schedule by the<br>
&gt; scheduler ?<br>
&gt; Can anyone give the detail information what&#39;s going on in backyard ?<br>
<br>
</div>An explanation of the different states is given in [1]:<br>
<br>
A process can sleep in two different modes, interruptible and<br>
uninterruptible. In an interruptible sleep, the process could be woken<br>
up for processing of signals. In an uninterruptible sleep, the process<br>
could not be woken up other than by issuing an explicit wake_up.<br>
Interruptible sleep is the preferred way of sleeping, unless there is<br>
a situation in which signals cannot be handled at all, such as device<br>
I/O.<br>
<br>
So, unless you absolutely cannot handle singals, you should use<br>
TASK_INTERRUPTIBLE and check for signals using signal_pending() (many<br>
code examples use this in the ldd3 book).<br>
<br>
TASK_UNINTERRUPTIBLE consequently means that your thread is not<br>
scheduled unless you explicitly wake up the thread.<br>
<br>
<br>
Greetings,<br>
<br>
  Philipp<br>
<br>
[1]: <a href="http://www.linuxjournal.com/article/8144?page=0,0" target="_blank">http://www.linuxjournal.com/article/8144?page=0,0</a><br>
</blockquote></div><br>