diff options
author | Yang Jihong <yangjihong@bytedance.com> | 2024-08-12 16:26:05 +0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2024-09-03 21:43:03 +0300 |
commit | 575eec218059f90bf07a4e26b531fd6d54fe1769 (patch) | |
tree | 1e2618b07116fd9fffa0138ad5e73c2ba89ed535 /tools/perf/builtin-sched.c | |
parent | bf0db8c759ba137cebfeda9eecc1f728cb14dab7 (diff) | |
download | linux-575eec218059f90bf07a4e26b531fd6d54fe1769.tar.xz |
perf sched timehist: Skip print non-idle task samples when only show idle events
when only show idle events, runtime stats of non-idle tasks is not updated,
and the value is 0, there is no need to print non-idle samples.
Before:
# perf sched timehist -I
Samples of sched_switch event do not have callchains.
time cpu task name wait time sch delay run time
[tid/pid] (msec) (msec) (msec)
--------------- ------ ------------------------------ --------- --------- ---------
2090450.763235 [0000] migration/0[15] 0.000 0.000 0.000
2090450.763268 [0001] migration/1[21] 0.000 0.000 0.000
2090450.763309 [0002] migration/2[27] 0.000 0.000 0.000
2090450.763343 [0003] migration/3[33] 0.000 0.000 0.000
2090450.763469 [0004] migration/4[39] 0.000 0.000 0.000
2090450.763501 [0005] migration/5[45] 0.000 0.000 0.000
2090450.763622 [0006] migration/6[51] 0.000 0.000 0.000
2090450.763660 [0007] migration/7[57] 0.000 0.000 0.000
2090450.763741 [0009] migration/9[69] 0.000 0.000 0.000
2090450.763862 [0010] migration/10[75] 0.000 0.000 0.000
2090450.763894 [0011] migration/11[81] 0.000 0.000 0.000
2090450.764021 [0012] migration/12[87] 0.000 0.000 0.000
2090450.764056 [0013] migration/13[93] 0.000 0.000 0.000
2090450.764135 [0014] migration/14[99] 0.000 0.000 0.000
2090450.764163 [0015] migration/15[105] 0.000 0.000 0.000
2090450.764292 [0016] migration/16[111] 0.000 0.000 0.000
2090450.764371 [0017] migration/17[117] 0.000 0.000 0.000
2090450.764422 [0018] migration/18[123] 0.000 0.000 0.000
2090450.764490 [0000] <idle> 0.000 0.000 1.255
2090450.764505 [0000] s1-perf[8235/7168] 0.000 0.000 0.000
2090450.764571 [0016] <idle> 0.000 0.000 0.278
2090450.764588 [0010] <idle> 0.000 0.000 0.725
2090450.764590 [0016] s1-agent[7179/7162] 0.000 0.000 0.000
2090450.764635 [0000] <idle> 0.015 0.015 0.129
2090450.764637 [0017] <idle> 0.000 0.000 0.266
2090450.764639 [0000] s1-perf[8235/7168] 0.000 0.000 0.000
2090450.764668 [0017] s1-agent[7180/7162] 0.000 0.000 0.000
2090450.764669 [0000] <idle> 0.003 0.003 0.029
2090450.764672 [0000] s1-perf[8235/7168] 0.000 0.000 0.000
2090450.764683 [0000] <idle> 0.003 0.003 0.010
After:
# perf sched timehist -I
Samples of sched_switch event do not have callchains.
time cpu task name wait time sch delay run time
[tid/pid] (msec) (msec) (msec)
--------------- ------ ------------------------------ --------- --------- ---------
2090450.764490 [0000] <idle> 0.000 0.000 1.255
2090450.764571 [0016] <idle> 0.000 0.000 0.278
2090450.764588 [0010] <idle> 0.000 0.000 0.725
2090450.764635 [0000] <idle> 0.015 0.015 0.129
2090450.764637 [0017] <idle> 0.000 0.000 0.266
2090450.764669 [0000] <idle> 0.003 0.003 0.029
2090450.764683 [0000] <idle> 0.003 0.003 0.010
2090450.764688 [0016] <idle> 0.019 0.019 0.097
2090450.764694 [0000] <idle> 0.001 0.001 0.009
2090450.764706 [0000] <idle> 0.001 0.001 0.010
2090450.764725 [0002] <idle> 0.000 0.000 1.415
2090450.764728 [0000] <idle> 0.002 0.002 0.019
2090450.764823 [0000] <idle> 0.003 0.003 0.091
2090450.764838 [0019] <idle> 0.000 0.000 0.154
2090450.764865 [0002] <idle> 0.109 0.109 0.029
2090450.764866 [0000] <idle> 0.012 0.012 0.030
2090450.764880 [0002] <idle> 0.013 0.013 0.001
2090450.764880 [0000] <idle> 0.002 0.002 0.011
2090450.764896 [0000] <idle> 0.001 0.001 0.013
2090450.764903 [0019] <idle> 0.063 0.063 0.002
2090450.764908 [0019] <idle> 0.003 0.003 0.001
Fixes: 07235f84ece6b66f ("perf sched timehist: Add -I/--idle-hist option")
Signed-off-by: Yang Jihong <yangjihong@bytedance.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20240812132606.3126490-1-yangjihong@bytedance.com
Reviewed-and-tested-by: Madadi Vineeth Reddy <vineethr@linux.ibm.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-sched.c')
-rw-r--r-- | tools/perf/builtin-sched.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 1c386ebe4b98..72f0e7f97f56 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -2730,10 +2730,10 @@ static int timehist_sched_change_event(const struct perf_tool *tool, itr->last_thread = NULL; } - } - if (!sched->summary_only) - timehist_print_sample(sched, evsel, sample, &al, thread, t, state); + if (!sched->summary_only) + timehist_print_sample(sched, evsel, sample, &al, thread, t, state); + } out: if (sched->hist_time.start == 0 && t >= ptime->start) |