Yang Jihong
98ed486436
perf sched timehist: Fix -g/--call-graph option failure
...
commit 6e4b398770d5023eb6383da9360a23bd537c155b upstream.
When 'perf sched' enables the call-graph recording, sample_type of dummy
event does not have PERF_SAMPLE_CALLCHAIN, timehist_check_attr() checks
that the evsel does not have a callchain, and set show_callchain to 0.
Currently 'perf sched timehist' only saves callchain when processing the
'sched:sched_switch event', timehist_check_attr() only needs to determine
whether the event has PERF_SAMPLE_CALLCHAIN.
Before:
# perf sched record -g true
[ perf record: Woken up 0 times to write data ]
[ perf record: Captured and wrote 4.153 MB perf.data (7536 samples) ]
# perf sched timehist
Samples do not have callchains.
time cpu task name wait time sch delay run time
[tid/pid] (msec) (msec) (msec)
--------------- ------ ------------------------------ --------- --------- ---------
147851.826019 [0000] perf[285035] 0.000 0.000 0.000
147851.826029 [0000] migration/0[15] 0.000 0.003 0.009
147851.826063 [0001] perf[285035] 0.000 0.000 0.000
147851.826069 [0001] migration/1[21] 0.000 0.003 0.006
<SNIP>
After:
# perf sched record -g true
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 2.572 MB perf.data (822 samples) ]
# perf sched timehist
time cpu task name waittime sch delay runtime
[tid/pid] (msec) (msec) (msec)
----------- --- --------------- -------- -------- -----
4193.035164 [0] perf[277062] 0.000 0.000 0.000 __traceiter_sched_switch <- __traceiter_sched_switch <- __sched_text_start <- preempt_schedule_common <- __cond_resched <- __wait_for_common <- wait_for_completion
4193.035174 [0] migration/0[15] 0.000 0.003 0.009 __traceiter_sched_switch <- __traceiter_sched_switch <- __sched_text_start <- smpboot_thread_fn <- kthread <- ret_from_fork
4193.035207 [1] perf[277062] 0.000 0.000 0.000 __traceiter_sched_switch <- __traceiter_sched_switch <- __sched_text_start <- preempt_schedule_common <- __cond_resched <- __wait_for_common <- wait_for_completion
4193.035214 [1] migration/1[21] 0.000 0.003 0.007 __traceiter_sched_switch <- __traceiter_sched_switch <- __sched_text_start <- smpboot_thread_fn <- kthread <- ret_from_fork
<SNIP>
Fixes: 9c95e4ef06572349 ("perf evlist: Add evlist__findnew_tracking_event() helper")
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Yang Jihong <yangjihong@bytedance.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.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>
Cc: Yang Jihong <yangjihong1@huawei.com>
Link: https://lore.kernel.org/r/20240401062724.1006010-2-yangjihong@bytedance.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-06-12 11:13:02 +02:00
..
2024-06-12 11:12:31 +02:00
2024-06-12 11:12:26 +02:00
2023-09-30 00:09:06 -07:00
2024-06-12 11:12:20 +02:00
2023-08-15 16:41:49 -03:00
2024-06-12 11:12:15 +02:00
2023-08-24 14:41:49 -03:00
2024-06-12 11:13:02 +02:00
2023-09-09 20:06:17 -07:00
2024-06-12 11:12:28 +02:00
2024-06-12 11:13:02 +02:00
2024-06-12 11:12:16 +02:00
2023-09-09 20:06:17 -07:00
2023-04-10 19:21:31 -03:00
2023-06-12 15:57:54 -03:00
2023-05-28 10:24:14 -03:00
2024-06-12 11:12:30 +02:00
2023-04-10 19:21:31 -03:00
2023-07-20 11:43:45 -03:00
2023-04-10 19:21:31 -03:00
2023-05-31 15:31:56 -03:00
2023-05-28 10:24:14 -03:00
2024-06-12 11:12:15 +02:00
2023-06-23 21:48:49 -07:00
2023-06-12 15:57:54 -03:00
2023-04-24 14:28:11 -03:00
2023-11-20 11:59:25 +01:00
2023-12-13 18:45:34 +01:00
2023-11-20 11:59:26 +01:00
2023-06-12 15:57:53 -03:00
2023-05-28 10:24:02 -03:00
2024-06-12 11:12:18 +02:00
2024-06-12 11:12:28 +02:00
2024-06-12 11:13:02 +02:00
2023-08-08 11:21:11 -03:00
2024-01-25 15:35:51 -08:00
2023-06-12 15:57:53 -03:00
2024-06-12 11:12:16 +02:00
2023-08-18 16:33:28 -03:00
2023-05-06 18:07:37 -03:00
2023-04-10 19:20:53 -03:00
2023-09-13 08:48:48 -03:00
2023-08-15 16:41:48 -03:00
2024-03-26 18:19:45 -04:00
2023-08-15 16:41:48 -03:00
2023-04-10 19:22:05 -03:00