2005/11/30, Grzegorz Nosek <grzegorz.nosek@gmail.com>:
Have a look into patch ver. 2.1.0-rc8. Relevant sections:
--------------8<-------snip--------8<-------------
@@ -135,7 +138,8 @@ static const char *task_state_array[] =
        "T (stopped)",          /*  4 */
        "T (tracing stop)",     /*  8 */
        "Z (zombie)",           /* 16 */
-       "X (dead)"              /* 32 */
+       "X (dead)",             /* 32 */
+       "H (on hold)"           /* 64 */
 };
 static inline const char * get_task_state(struct task_struct *tsk)
@@ -127,6 +129,7 @@ extern unsigned long nr_iowait(void);
 #define EXIT_DEAD              32
 /* in tsk->state again */
 #define TASK_NONINTERACTIVE    64
+#define TASK_ONHOLD            128
 #define __set_task_state(tsk, state_value)             \
        do { (tsk)->state = (state_value); } while (0)
--------------8<-------snip--------8<-------------
Now, spot the bug :D Took me three days. Patch below (the "N
(noninteractive)" is actually unused but it doesn't hurt to make it
informative. Feel free to replace e.g. the comment with /* 64 (unused)
*/
diff -Naur linux-2.6-orig/fs/proc/array.c linux-2.6/fs/proc/array.c
--- linux-2.6-orig/fs/proc/array.c      2005-11-28 12:09:46.000000000 +0100
+++ linux-2.6/fs/proc/array.c   2005-12-01 09:31:46.000000000 +0100
@@ -139,7 +139,8 @@
        "T (tracing stop)",     /*  8 */
        "Z (zombie)",           /* 16 */
        "X (dead)",             /* 32 */
-       "H (on hold)"           /* 64 */
+       "N (noninteractive)",   /* 64 */
+       "H (on hold)"           /* 128 */
 };
 static inline const char * get_task_state(struct task_struct *tsk)
Best regards,
 Grzegorz Nosek
_______________________________________________
Vserver mailing list
Vserver@list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver
Received on Thu Dec  1 12:28:10 2005