diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-08-14 15:40:58 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-08-15 11:24:08 -0400 |
commit | 6469eb6dffeb44edfa3d4ca496b044b4a9c643b9 (patch) | |
tree | a481ede3750fee9fd71a5ae0a4fc5cce2c20f67c | |
parent | f90a24171a8179a29e5e1532fd5bb94e59b5380e (diff) |
perf script: Allow showing the --switch-on event
One may want to see the --switch-on event as well, allow for that, using
the previous cset example:
# perf script --switch-on syscalls:sys_enter_nanosleep --show-on-off
sleep 13638 [001] 108237.582286: syscalls:sys_enter_nanosleep: rqtp: 0x7fff1948ac40, rmtp: 0x00000000
sleep 13638 [001] 108237.582289: sched:sched_stat_runtime: comm=sleep pid=13638 runtime=578104 [ns] vruntime=202889459556 [ns]
sleep 13638 [001] 108237.582291: sched:sched_switch: sleep:13638 [120] S ==> swapper/1:0 [120]
swapper 0 [001] 108238.582428: sched:sched_waking: comm=sleep pid=13638 prio=120 target_cpu=001
swapper 0 [001] 108238.582458: sched:sched_wakeup: sleep:13638 [120] success=1 CPU:001
sleep 13638 [001] 108238.582698: sched:sched_stat_runtime: comm=sleep pid=13638 runtime=173915 [ns] vruntime=202889633471 [ns]
sleep 13638 [001] 108238.582782: sched:sched_process_exit: comm=sleep pid=13638 prio=120
#
# perf script --switch-on syscalls:sys_enter_nanosleep
sleep 13638 [001] 108237.582289: sched:sched_stat_runtime: comm=sleep pid=13638 runtime=578104 [ns] vruntime=202889459556 [ns]
sleep 13638 [001] 108237.582291: sched:sched_switch: sleep:13638 [120] S ==> swapper/1:0 [120]
swapper 0 [001] 108238.582428: sched:sched_waking: comm=sleep pid=13638 prio=120 target_cpu=001
swapper 0 [001] 108238.582458: sched:sched_wakeup: sleep:13638 [120] success=1 CPU:001
sleep 13638 [001] 108238.582698: sched:sched_stat_runtime: comm=sleep pid=13638 runtime=173915 [ns] vruntime=202889633471 [ns]
sleep 13638 [001] 108238.582782: sched:sched_process_exit: comm=sleep pid=13638 prio=120
#
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: William Cohen <wcohen@redhat.com>
Cc: Florian Weimer <fweimer@redhat.com>
Link: https://lkml.kernel.org/n/tip-0omwwoywj1v63gu8cz0tr0cy@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/Documentation/perf-script.txt | 3 | ||||
-rw-r--r-- | tools/perf/builtin-script.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt index 9936819aae1c..24eea68ee829 100644 --- a/tools/perf/Documentation/perf-script.txt +++ b/tools/perf/Documentation/perf-script.txt | |||
@@ -420,6 +420,9 @@ include::itrace.txt[] | |||
420 | --switch-on EVENT_NAME:: | 420 | --switch-on EVENT_NAME:: |
421 | Only consider events after this event is found. | 421 | Only consider events after this event is found. |
422 | 422 | ||
423 | --show-on-off-events:: | ||
424 | Show the --switch-on event too. | ||
425 | |||
423 | SEE ALSO | 426 | SEE ALSO |
424 | -------- | 427 | -------- |
425 | linkperf:perf-record[1], linkperf:perf-script-perl[1], | 428 | linkperf:perf-record[1], linkperf:perf-script-perl[1], |
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index d0bc7ccaf7bf..fa0cc8b0eccc 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
@@ -1619,6 +1619,7 @@ static int perf_sample__fprintf_synth(struct perf_sample *sample, | |||
1619 | struct evswitch { | 1619 | struct evswitch { |
1620 | struct evsel *on; | 1620 | struct evsel *on; |
1621 | bool discarding; | 1621 | bool discarding; |
1622 | bool show_on_off_events; | ||
1622 | }; | 1623 | }; |
1623 | 1624 | ||
1624 | struct perf_script { | 1625 | struct perf_script { |
@@ -1816,6 +1817,9 @@ static void process_event(struct perf_script *script, | |||
1816 | return; | 1817 | return; |
1817 | 1818 | ||
1818 | script->evswitch.discarding = false; | 1819 | script->evswitch.discarding = false; |
1820 | |||
1821 | if (!script->evswitch.show_on_off_events) | ||
1822 | return; | ||
1819 | } | 1823 | } |
1820 | 1824 | ||
1821 | ++es->samples; | 1825 | ++es->samples; |
@@ -3554,6 +3558,8 @@ int cmd_script(int argc, const char **argv) | |||
3554 | "file", "file saving guest os /proc/modules"), | 3558 | "file", "file saving guest os /proc/modules"), |
3555 | OPT_STRING(0, "switch-on", &event_switch_on, | 3559 | OPT_STRING(0, "switch-on", &event_switch_on, |
3556 | "event", "Consider events from the first ocurrence of this event"), | 3560 | "event", "Consider events from the first ocurrence of this event"), |
3561 | OPT_BOOLEAN(0, "show-on-off-events", &script.evswitch.show_on_off_events, | ||
3562 | "Show the on/off switch events, used with --switch-on"), | ||
3557 | OPT_END() | 3563 | OPT_END() |
3558 | }; | 3564 | }; |
3559 | const char * const script_subcommands[] = { "record", "report", NULL }; | 3565 | const char * const script_subcommands[] = { "record", "report", NULL }; |