[PATCH 12/12] perf script: Add --show-all-events option

Jiri Olsa
2019-05-08T13:21:00Z

Adding --show-all-events option to show all
side-bad events with single option, like:

$ perf script --show-all-events
swapper 0 [000] 0.000000: PERF_RECORD_MMAP -1/0: [0xffffffffa6000000(0xc00e41) @ 0xffffffffa6000000]: x [kernel.kallsyms]_text
...
swapper 0 [000] 0.000000: PERF_RECORD_KSYMBOL addr ffffffffc01bc362 len 229 type 1 flags 0x0 name bpf_prog_7be49e3934a125ba
swapper 0 [000] 0.000000: PERF_RECORD_BPF_EVENT type 1, flags 0, id 29
...
swapper 0 [000] 0.000000: PERF_RECORD_FORK(1:1):(0:0)
systemd 0 [000] 0.000000: PERF_RECORD_COMM: systemd:1/1
...
swapper 0 [000] 63587.039518: 1 cycles: ffffffffa60698b4 [unknown] ([kernel.kallsyms])
swapper 0 [000] 63587.039522: 1 cycles: ffffffffa60698b4 [unknown] ([kernel.kallsyms])

Link: http://lkml.kernel.org/n/tip-g7vmuwn6i7pa8cdpnxl9vsur@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/Documentation/perf-script.txt | 3 +++
tools/perf/builtin-script.c | 13 +++++++++++++
2 files changed, 16 insertions(+)

diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index af8282782911..ddcd08bf0172 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -316,6 +316,9 @@ OPTIONS
--show-bpf-events
Display bpf events i.e. events of type PERF_RECORD_KSYMBOL and PERF_RECORD_BPF_EVENT.

+--show-all-events
+ Display all side-band events i.e. enable all --show-*-events options.
+
--demangle::
Demangle symbol names to human readable form. It's enabled by default,
disable with --no-demangle.
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 3a48a2627670..e7462dcab2c6 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1607,6 +1607,7 @@ struct perf_script {
bool show_lost_events;
bool show_round_events;
bool show_bpf_events;
+ bool show_all_events;
bool allocated;
bool per_event_dump;
struct cpu_map *cpus;
@@ -2436,6 +2437,16 @@ static int __cmd_script(struct perf_script *script)

perf_stat__init_shadow_stats();

+ if (script->show_all_events) {
+ script->show_task_events = true;
+ script->show_mmap_events = true;
+ script->show_switch_events = true;
+ script->show_namespace_events = true;
+ script->show_lost_events = true;
+ script->show_round_events = true;
+ script->show_bpf_events = true;
+ }
+
/* override event processing functions */
if (script->show_task_events) {
script->tool.comm = process_comm_event;
@@ -3481,6 +3492,8 @@ int cmd_script(int argc, const char **argv)
"Show round events (if recorded)"),
OPT_BOOLEAN('\0', "show-bpf-events", &script.show_bpf_events,
"Show bpf related events (if recorded)"),
+ OPT_BOOLEAN('\0', "show-all-events", &script.show_all_events,
+ "Show all side-band events (if recorded)"),
OPT_BOOLEAN('\0', "per-event-dump", &script.per_event_dump,
"Dump trace output to files named by the monitored events"),
OPT_BOOLEAN('f', "force", &symbol_conf.force, "don't complain, do it"),
--
2.20.1