lkml.org 
[lkml]   [2010]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH -mm 1/2] proc_sched_show_task: use get_nr_threads()
On 03/23, Oleg Nesterov wrote:
>
> Trivial, use get_nr_threads() helper to read signal->count which
> we are going to change.
>
> Like other callers, proc_sched_show_task() doesn't need the exactly
> precise nr_threads.

I don't think this can make any problem, but let me clarify just in
case to avoid the possible confusion...

This change is not equivalent. Before this patch, num_threads == 1
if p has already exited (no matter how many other threads we have).

After this patch, we always report the correct number of live threads
in this thread group, this also means we can report zero in unlikely
case.

> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
> ---
>
> kernel/sched_debug.c | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
>
> --- 34-rc1/kernel/sched_debug.c~MISC_1_PROC_SCHED_SHOW_TASK 2009-12-18 19:05:38.000000000 +0100
> +++ 34-rc1/kernel/sched_debug.c 2010-03-23 14:52:42.000000000 +0100
> @@ -384,15 +384,9 @@ __initcall(init_sched_debug_procfs);
> void proc_sched_show_task(struct task_struct *p, struct seq_file *m)
> {
> unsigned long nr_switches;
> - unsigned long flags;
> - int num_threads = 1;
> -
> - if (lock_task_sighand(p, &flags)) {
> - num_threads = atomic_read(&p->signal->count);
> - unlock_task_sighand(p, &flags);
> - }
>
> - SEQ_printf(m, "%s (%d, #threads: %d)\n", p->comm, p->pid, num_threads);
> + SEQ_printf(m, "%s (%d, #threads: %d)\n", p->comm, p->pid,
> + get_nr_threads(p));
> SEQ_printf(m,
> "---------------------------------------------------------\n");
> #define __P(F) \



\
 
 \ /
  Last update: 2010-03-23 16:13    [W:0.049 / U:0.448 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site