From 26155cc853f326b88a7a69b91d80bd95ebc66acf Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 22 Jan 2024 15:43:28 -0800 Subject: [PATCH] 5.4-stable patches added patches: perf-top-skip-side-band-event-setup-if-have_libbpf_support-is-not-set.patch --- ...up-if-have_libbpf_support-is-not-set.patch | 94 +++++++++++++++++++ queue-5.4/series | 1 + 2 files changed, 95 insertions(+) create mode 100644 queue-5.4/perf-top-skip-side-band-event-setup-if-have_libbpf_support-is-not-set.patch diff --git a/queue-5.4/perf-top-skip-side-band-event-setup-if-have_libbpf_support-is-not-set.patch b/queue-5.4/perf-top-skip-side-band-event-setup-if-have_libbpf_support-is-not-set.patch new file mode 100644 index 00000000000..3bc548c4694 --- /dev/null +++ b/queue-5.4/perf-top-skip-side-band-event-setup-if-have_libbpf_support-is-not-set.patch @@ -0,0 +1,94 @@ +From 0c5f1acc2a14416bf30023f373558d369afdbfc8 Mon Sep 17 00:00:00 2001 +From: Tiezhu Yang +Date: Tue, 18 Aug 2020 20:30:37 +0800 +Subject: perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set + +From: Tiezhu Yang + +commit 0c5f1acc2a14416bf30023f373558d369afdbfc8 upstream. + +When I execute 'perf top' without HAVE_LIBBPF_SUPPORT, there exists the +following segmentation fault, skip the side-band event setup to fix it, +this is similar with commit 1101c872c8c7 ("perf record: Skip side-band +event setup if HAVE_LIBBPF_SUPPORT is not set"). + + [yangtiezhu@linux perf]$ ./perf top + + perf: Segmentation fault + Obtained 6 stack frames. + ./perf(sighandler_dump_stack+0x5c) [0x12011b604] + [0xffffffc010] + ./perf(perf_mmap__read_init+0x3e) [0x1201feeae] + ./perf() [0x1200d715c] + /lib64/libpthread.so.0(+0xab9c) [0xffee10ab9c] + /lib64/libc.so.6(+0x128f4c) [0xffedc08f4c] + Segmentation fault + [yangtiezhu@linux perf]$ + +I use git bisect to find commit b38d85ef49cf ("perf bpf: Decouple +creating the evlist from adding the SB event") is the first bad commit, +so also add the Fixes tag. + +Committer testing: + +First build perf explicitely disabling libbpf: + + $ make NO_LIBBPF=1 O=/tmp/build/perf -C tools/perf install-bin && perf test python + +Now make sure it isn't linked: + + $ perf -vv | grep -w bpf + bpf: [ OFF ] # HAVE_LIBBPF_SUPPORT + $ + $ nm ~/bin/perf | grep libbpf + $ + +And now try to run 'perf top': + + # perf top + perf: Segmentation fault + -------- backtrace -------- + perf[0x5bcd6d] + /lib64/libc.so.6(+0x3ca6f)[0x7fd0f5a66a6f] + perf(perf_mmap__read_init+0x1e)[0x5e1afe] + perf[0x4cc468] + /lib64/libpthread.so.0(+0x9431)[0x7fd0f645a431] + /lib64/libc.so.6(clone+0x42)[0x7fd0f5b2b912] + # + +Applying this patch fixes the issue. + +Fixes: b38d85ef49cf ("perf bpf: Decouple creating the evlist from adding the SB event") +Signed-off-by: Tiezhu Yang +Tested-by: Arnaldo Carvalho de Melo +Cc: Alexander Shishkin +Cc: Jiri Olsa +Cc: Mark Rutland +Cc: Namhyung Kim +Cc: Peter Zijlstra +Cc: Xuefeng Li +Link: http://lore.kernel.org/lkml/1597753837-16222-1-git-send-email-yangtiezhu@loongson.cn +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman +--- + tools/perf/builtin-top.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/tools/perf/builtin-top.c ++++ b/tools/perf/builtin-top.c +@@ -1682,6 +1682,7 @@ int cmd_top(int argc, const char **argv) + goto out_delete_evlist; + } + ++#ifdef HAVE_LIBBPF_SUPPORT + if (!top.record_opts.no_bpf_event) { + top.sb_evlist = evlist__new(); + +@@ -1695,6 +1696,7 @@ int cmd_top(int argc, const char **argv) + goto out_delete_evlist; + } + } ++#endif + + if (perf_evlist__start_sb_thread(top.sb_evlist, target)) { + pr_debug("Couldn't start the BPF side band thread:\nBPF programs starting from now on won't be annotatable\n"); diff --git a/queue-5.4/series b/queue-5.4/series index 3c285a403cf..624cccbf4c5 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -191,3 +191,4 @@ kdb-fix-a-potential-buffer-overflow-in-kdb_local.patch mlxsw-spectrum_acl_erp-fix-error-flow-of-pool-alloca.patch i2c-s3c24xx-fix-read-transfers-in-polling-mode.patch i2c-s3c24xx-fix-transferring-more-than-one-message-i.patch +perf-top-skip-side-band-event-setup-if-have_libbpf_support-is-not-set.patch -- 2.47.3