File perf-probe-do-not-show-the-skipped-events.patch of Package perf
67
1
From: Masami Hiramatsu <mhiramat@kernel.org>
2
Date: Thu, 23 Apr 2020 20:01:22 +0900
3
Subject: perf probe: Do not show the skipped events
4
Git-commit: f41ebe9defacddeae96a872a33f0f22ced0bfcef
5
References: git-fixes
6
7
When a probe point is expanded to several places (like inlined) and if
8
some of them are skipped because of blacklisted or __init function,
9
those trace_events has no event name. It must be skipped while showing
10
results.
11
12
Without this fix, you can see "(null):(null)" on the list,
13
14
# ./perf probe request_resource
15
reserve_setup is out of .text, skip it.
16
Added new events:
17
(null):(null) (on request_resource)
18
probe:request_resource (on request_resource)
19
20
You can now use it in all perf tools, such as:
21
22
perf record -e probe:request_resource -aR sleep 1
23
24
#
25
26
With this fix, it is ignored:
27
28
# ./perf probe request_resource
29
reserve_setup is out of .text, skip it.
30
Added new events:
31
probe:request_resource (on request_resource)
32
33
You can now use it in all perf tools, such as:
34
35
perf record -e probe:request_resource -aR sleep 1
36
37
#
38
39
Fixes: 5a51fcd1f30c ("perf probe: Skip kernel symbols which is out of .text")
40
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
41
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
42
Cc: Jiri Olsa <jolsa@kernel.org>
43
Cc: Namhyung Kim <namhyung@kernel.org>
44
Cc: stable@vger.kernel.org
45
Link: http://lore.kernel.org/lkml/158763968263.30755.12800484151476026340.stgit@devnote2
46
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
47
Acked-by: Tony Jones <tonyj@suse.de>
48
---
49
tools/perf/builtin-probe.c | 3 +++
50
1 file changed, 3 insertions(+)
51
52
diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
53
index 70548df2abb9..6b1507566770 100644
54
--- a/tools/perf/builtin-probe.c
55
+++ b/tools/perf/builtin-probe.c
56
57
58
for (k = 0; k < pev->ntevs; k++) {
59
struct probe_trace_event *tev = &pev->tevs[k];
60
+ /* Skipped events have no event name */
61
+ if (!tev->event)
62
+ continue;
63
64
/* We use tev's name for showing new events */
65
show_perf_probe_event(tev->group, tev->event, pev,
66
67