* [PATCH 1/2] perf list: Add support for PERF_COUNT_SW_BPF_OUT
2015-12-17 0:56 [GIT PULL 0/2] perf/urgent fix Arnaldo Carvalho de Melo
@ 2015-12-17 0:56 ` Arnaldo Carvalho de Melo
2015-12-17 0:56 ` [PATCH 2/2] perf list: Robustify event printing routine Arnaldo Carvalho de Melo
2015-12-18 8:43 ` [GIT PULL 0/2] perf/urgent fix Ingo Molnar
2 siblings, 0 replies; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-12-17 0:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, David Ahern, Jiri Olsa, Namhyung Kim,
Wang Nan, William Cohen
From: Arnaldo Carvalho de Melo <acme@redhat.com>
When PERF_COUNT_SW_BPF_OUTPUT was added to the kernel we should've
added it to tools/perf, where it is used just to list events.
This ended up causing a segfault in commands like "perf list stall".
Fix it by adding that new software counter.
A patch to robustify perf to not segfault when the next counter gets
added in the kernel will follow this one.
Reported-by: Ingo Molnar <mingo@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: William Cohen <wcohen@redhat.com>
Link: http://lkml.kernel.org/n/tip-uya354upi3eprsey6mi5962d@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/parse-events.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index e48d9da75707..40ae92a8673c 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -124,6 +124,10 @@ struct event_symbol event_symbols_sw[PERF_COUNT_SW_MAX] = {
.symbol = "dummy",
.alias = "",
},
+ [PERF_COUNT_SW_BPF_OUTPUT] = {
+ .symbol = "bpf-output",
+ .alias = "",
+ },
};
#define __PERF_EVENT_FIELD(config, name) \
--
2.1.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/2] perf list: Robustify event printing routine
2015-12-17 0:56 [GIT PULL 0/2] perf/urgent fix Arnaldo Carvalho de Melo
2015-12-17 0:56 ` [PATCH 1/2] perf list: Add support for PERF_COUNT_SW_BPF_OUT Arnaldo Carvalho de Melo
@ 2015-12-17 0:56 ` Arnaldo Carvalho de Melo
2015-12-18 8:43 ` [GIT PULL 0/2] perf/urgent fix Ingo Molnar
2 siblings, 0 replies; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-12-17 0:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, David Ahern, Jiri Olsa, Namhyung Kim,
Wang Nan, William Cohen
From: Arnaldo Carvalho de Melo <acme@redhat.com>
When a43eec304259 ("bpf: introduce bpf_perf_event_output() helper") added
PERF_COUNT_SW_BPF_OUTPUT we ended up with a new entry in the event_symbols_sw
array that wasn't initialized, thus set to NULL, fix print_symbol_events()
to check for that case so that we don't crash if this happens again.
(gdb) bt
#0 __match_glob (ignore_space=false, pat=<optimized out>, str=<optimized out>) at util/string.c:198
#1 strglobmatch (str=<optimized out>, pat=pat@entry=0x7fffffffe61d "stall") at util/string.c:252
#2 0x00000000004993a5 in print_symbol_events (type=1, syms=0x872880 <event_symbols_sw+160>, max=11, name_only=false, event_glob=0x7fffffffe61d "stall")
at util/parse-events.c:1615
#3 print_events (event_glob=event_glob@entry=0x7fffffffe61d "stall", name_only=false) at util/parse-events.c:1675
#4 0x000000000042c79e in cmd_list (argc=1, argv=0x7fffffffe390, prefix=<optimized out>) at builtin-list.c:68
#5 0x00000000004788a5 in run_builtin (p=p@entry=0x871758 <commands+120>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe390) at perf.c:370
#6 0x0000000000420ab0 in handle_internal_command (argv=0x7fffffffe390, argc=2) at perf.c:429
#7 run_argv (argv=0x7fffffffe110, argcp=0x7fffffffe11c) at perf.c:473
#8 main (argc=2, argv=0x7fffffffe390) at perf.c:588
(gdb) p event_symbols_sw[PERF_COUNT_SW_BPF_OUTPUT]
$4 = {symbol = 0x0, alias = 0x0}
(gdb)
A patch to robustify perf to not segfault when the next counter gets added in
the kernel will follow this one.
Reported-by: Ingo Molnar <mingo@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: William Cohen <wcohen@redhat.com>
Link: http://lkml.kernel.org/n/tip-57wysblcjfrseb0zg5u7ek10@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/parse-events.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 40ae92a8673c..6fc8cd753e1a 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -1883,7 +1883,7 @@ restart:
for (i = 0; i < max; i++, syms++) {
- if (event_glob != NULL &&
+ if (event_glob != NULL && syms->symbol != NULL &&
!(strglobmatch(syms->symbol, event_glob) ||
(syms->alias && strglobmatch(syms->alias, event_glob))))
continue;
--
2.1.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [GIT PULL 0/2] perf/urgent fix
2015-12-17 0:56 [GIT PULL 0/2] perf/urgent fix Arnaldo Carvalho de Melo
2015-12-17 0:56 ` [PATCH 1/2] perf list: Add support for PERF_COUNT_SW_BPF_OUT Arnaldo Carvalho de Melo
2015-12-17 0:56 ` [PATCH 2/2] perf list: Robustify event printing routine Arnaldo Carvalho de Melo
@ 2015-12-18 8:43 ` Ingo Molnar
2 siblings, 0 replies; 4+ messages in thread
From: Ingo Molnar @ 2015-12-18 8:43 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, David Ahern,
Jiri Olsa, Namhyung Kim, Wang Nan, William Cohen,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling, this one is already in perf/core,
> but is needed for perf/urgent too, as reported by Will Cohen.
>
> - Arnaldo
>
> The following changes since commit 03fba21adb190fc0aec9c2556639c1c1b195aee7:
>
> Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2015-12-08 06:05:12 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
>
> for you to fetch changes up to fb202539e61b14bc63ac29af10fe5d758ecd880a:
>
> perf list: Robustify event printing routine (2015-12-16 16:43:10 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fix:
>
> User visible changes:
>
> - Fix 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT
> in an array used just for printing available events, robustify the code
> involved (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf list: Add support for PERF_COUNT_SW_BPF_OUT
> perf list: Robustify event printing routine
>
> tools/perf/util/parse-events.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 4+ messages in thread