2005/11/30, Grzegorz Nosek <[EMAIL PROTECTED]>:

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
[email protected]
http://list.linux-vserver.org/mailman/listinfo/vserver

Reply via email to