Re: Question about task_struct::state

From: Oleg Nesterov
Date: Tue Jun 10 2008 - 13:18:19 EST


On 06/10, Dhaval Giani wrote:
>
> sched.h has a comment in task_struct
>
> volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
>
> After some searching, I've not been able to figure out how state can
> become -1 (or unrunnable). Can you let me know how that happens?
>
> If it cannot reach that state, then maybe this patch is needed.
>
> Signed-off-by: Dhaval Giani <dhaval@xxxxxxxxxxxxxxxxxx>
>
> Index: linux-2.6/include/linux/sched.h
> ===================================================================
> --- linux-2.6.orig/include/linux/sched.h 2008-06-10 21:13:02.000000000 +0530
> +++ linux-2.6/include/linux/sched.h 2008-06-10 21:14:44.000000000 +0530
> @@ -1024,7 +1024,7 @@ struct sched_rt_entity {
> };
>
> struct task_struct {
> - volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
> + volatile long state; /* 0 runnable, >0 stopped */

I think you are right, the comment is wrong (obsolete?).

Perhaps it is better to just remove it, or add a note about TASK_RUNNING/etc
above. ">0 stopped" looks a bit confusing too.

I'd suggest you to change the subject and send the patch to Andrew.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/