2008-06-10 15:51:50

by Dhaval Giani

[permalink] [raw]
Subject: Question about task_struct::state

Hi Ingo, Oleg,

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 <[email protected]>

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 */
void *stack;
atomic_t usage;
unsigned int flags; /* per process flags, defined below */

--
regards,
Dhaval


2008-06-10 17:18:19

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Question about task_struct::state

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 <[email protected]>
>
> 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.