Messages in this thread | | | From | (Eric W. Biederman) | Subject | Re: [PATCH] include children count, in Threads: field present in /proc/<pid>/status (take-3) | Date | Fri, 29 Sep 2006 16:51:24 -0600 |
| |
This conflicts with the /proc changes in -mm. Where we have manged to remove the use of the tasklist_lock.
The information in Children: is racy as it may change immediately after you drop the lock.
Why is it interesting to report this information? A process that cares can keep track of this in user space?
Eric
> Signed-off-by: Girish V. Gulawani <girishvg@gmail.com> > > --- linux-vanilla/fs/proc/array.c 2006-09-20 12:42:06.000000000 +0900 > +++ linux/fs/proc/array.c 2006-09-30 03:18:28.000000000 +0900 > @@ -248,6 +248,8 @@ static inline char * task_sig(struct tas > int num_threads = 0; > unsigned long qsize = 0; > unsigned long qlim = 0; > + int num_children = 0; > + struct list_head *_p; > > sigemptyset(&pending); > sigemptyset(&shpending); > @@ -268,9 +270,13 @@ static inline char * task_sig(struct tas > qlim = p->signal->rlim[RLIMIT_SIGPENDING].rlim_cur; > spin_unlock_irq(&p->sighand->siglock); > } > + list_for_each(_p, &p->children) > + ++num_children; > read_unlock(&tasklist_lock); > > buffer += sprintf(buffer, "Threads:\t%d\n", num_threads); > + if (num_children) > + buffer += sprintf(buffer, "Children:\t%d\nTotal:\t%d\n", > num_children, num_threads + num_children); > buffer += sprintf(buffer, "SigQ:\t%lu/%lu\n", qsize, qlim); > > /* render them all */ > > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |