summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2019-08-14 15:40:58 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2019-08-15 11:24:08 -0400
commit6469eb6dffeb44edfa3d4ca496b044b4a9c643b9 (patch)
treea481ede3750fee9fd71a5ae0a4fc5cce2c20f67c
parentf90a24171a8179a29e5e1532fd5bb94e59b5380e (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.txt3
-rw-r--r--tools/perf/builtin-script.c6
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
423SEE ALSO 426SEE ALSO
424-------- 427--------
425linkperf:perf-record[1], linkperf:perf-script-perl[1], 428linkperf: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,
1619struct evswitch { 1619struct 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
1624struct perf_script { 1625struct 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 };