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
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.