aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2016-12-05 22:40:05 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-12-07 10:00:34 -0500
commitb336352b417edd8c058c9e09d136728b6e2ff56d (patch)
tree8fabbd3039798fc3e1ddabd3f8f48c23a1f1ba96
parent5d92d96a947a5d0d83710d11750bb29a0c1b985d (diff)
perf sched timehist: Cleanup idle_max_cpu handling
It treats the idle_max_cpu little bit confusingly IMHO. Let's make it more straight forward. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: David Ahern <dsahern@gmail.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Minchan Kim <minchan@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20161206034010.6499-6-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/builtin-sched.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index c8b3e6c330c3..1a3f1be93372 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -2010,7 +2010,7 @@ static int init_idle_threads(int ncpu)
2010 if (!idle_threads) 2010 if (!idle_threads)
2011 return -ENOMEM; 2011 return -ENOMEM;
2012 2012
2013 idle_max_cpu = ncpu - 1; 2013 idle_max_cpu = ncpu;
2014 2014
2015 /* allocate the actual thread struct if needed */ 2015 /* allocate the actual thread struct if needed */
2016 for (i = 0; i < ncpu; ++i) { 2016 for (i = 0; i < ncpu; ++i) {
@@ -2031,7 +2031,7 @@ static void free_idle_threads(void)
2031 if (idle_threads == NULL) 2031 if (idle_threads == NULL)
2032 return; 2032 return;
2033 2033
2034 for (i = 0; i <= idle_max_cpu; ++i) { 2034 for (i = 0; i < idle_max_cpu; ++i) {
2035 if ((idle_threads[i])) 2035 if ((idle_threads[i]))
2036 thread__delete(idle_threads[i]); 2036 thread__delete(idle_threads[i]);
2037 } 2037 }
@@ -2054,8 +2054,7 @@ static struct thread *get_idle_thread(int cpu)
2054 return NULL; 2054 return NULL;
2055 2055
2056 idle_threads = (struct thread **) p; 2056 idle_threads = (struct thread **) p;
2057 i = idle_max_cpu ? idle_max_cpu + 1 : 0; 2057 for (i = idle_max_cpu; i < j; ++i)
2058 for (; i < j; ++i)
2059 idle_threads[i] = NULL; 2058 idle_threads[i] = NULL;
2060 2059
2061 idle_max_cpu = j; 2060 idle_max_cpu = j;
@@ -2495,7 +2494,7 @@ static void timehist_print_summary(struct perf_sched *sched,
2495 return; 2494 return;
2496 2495
2497 printf("\nIdle stats:\n"); 2496 printf("\nIdle stats:\n");
2498 for (i = 0; i <= idle_max_cpu; ++i) { 2497 for (i = 0; i < idle_max_cpu; ++i) {
2499 t = idle_threads[i]; 2498 t = idle_threads[i];
2500 if (!t) 2499 if (!t)
2501 continue; 2500 continue;