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