* [PATCH v2] perf: fix segfault in `lock contention -b`
@ 2026-02-05 16:32 Tycho Andersen
2026-02-06 0:17 ` Namhyung Kim
0 siblings, 1 reply; 3+ messages in thread
From: Tycho Andersen @ 2026-02-05 16:32 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Namhyung Kim
Cc: Peter Zijlstra, Ingo Molnar, Mark Rutland, Alexander Shishkin,
Jiri Olsa, Ian Rogers, Adrian Hunter, James Clark, Chun-Tse Shao,
linux-perf-users, linux-kernel, Ravi Bangoria, K Prateek Nayak
From: "Tycho Andersen (AMD)" <tycho@kernel.org>
When run on a kernel without BTF info, perf crashes:
libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
libbpf: failed to find valid kernel BTF
Program received signal SIGSEGV, Segmentation fault.
0x00005555556915b7 in btf.type_cnt ()
(gdb) bt
#0 0x00005555556915b7 in btf.type_cnt ()
#1 0x0000555555691fbc in btf_find_by_name_kind ()
#2 0x00005555556920d0 in btf.find_by_name_kind ()
#3 0x00005555558a1b7c in init_numa_data (con=0x7fffffffd0a0) at util/bpf_lock_contention.c:125
#4 0x00005555558a264b in lock_contention_prepare (con=0x7fffffffd0a0) at util/bpf_lock_contention.c:313
#5 0x0000555555620702 in __cmd_contention (argc=0, argv=0x7fffffffea10) at builtin-lock.c:2084
#6 0x0000555555622c8d in cmd_lock (argc=0, argv=0x7fffffffea10) at builtin-lock.c:2755
#7 0x0000555555651451 in run_builtin (p=0x555556104f00 <commands+576>, argc=3, argv=0x7fffffffea10)
at perf.c:349
#8 0x00005555556516ed in handle_internal_command (argc=3, argv=0x7fffffffea10) at perf.c:401
#9 0x000055555565184e in run_argv (argcp=0x7fffffffe7fc, argv=0x7fffffffe7f0) at perf.c:445
#10 0x0000555555651b9f in main (argc=3, argv=0x7fffffffea10) at perf.c:553
Check if btf loading failed, and don't do anything with it in
init_numa_data(). This leads to the following error message, instead of
just a crash:
libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
libbpf: failed to find valid kernel BTF
libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
libbpf: failed to find valid kernel BTF
libbpf: Error loading vmlinux BTF: -ESRCH
libbpf: failed to load BPF skeleton 'lock_contention_bpf': -ESRCH
Failed to load lock-contention BPF skeleton
lock contention BPF setup failed
Signed-off-by: Tycho Andersen (AMD) <tycho@kernel.org>
CC: Ravi Bangoria <ravi.bangoria@amd.com>
CC: K Prateek Nayak <kprateek.nayak@amd.com>
---
tools/perf/util/bpf_lock_contention.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/util/bpf_lock_contention.c b/tools/perf/util/bpf_lock_contention.c
index 7b5671f13c53..8cd991b3f209 100644
--- a/tools/perf/util/bpf_lock_contention.c
+++ b/tools/perf/util/bpf_lock_contention.c
@@ -117,6 +117,9 @@ static void init_numa_data(struct lock_contention *con)
long last = -1;
int ret;
+ if (!con->btf)
+ return;
+
/*
* 'struct zone' is embedded in 'struct pglist_data' as an array.
* As we may not have full information of the struct zone in the
base-commit: 18f7fcd5e69a04df57b563360b88be72471d6b62
--
2.52.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] perf: fix segfault in `lock contention -b`
2026-02-05 16:32 [PATCH v2] perf: fix segfault in `lock contention -b` Tycho Andersen
@ 2026-02-06 0:17 ` Namhyung Kim
2026-02-06 21:59 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 3+ messages in thread
From: Namhyung Kim @ 2026-02-06 0:17 UTC (permalink / raw)
To: Tycho Andersen
Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
Adrian Hunter, James Clark, Chun-Tse Shao, linux-perf-users,
linux-kernel, Ravi Bangoria, K Prateek Nayak
Hello,
On Thu, Feb 05, 2026 at 09:32:50AM -0700, Tycho Andersen wrote:
> From: "Tycho Andersen (AMD)" <tycho@kernel.org>
>
> When run on a kernel without BTF info, perf crashes:
>
> libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> libbpf: failed to find valid kernel BTF
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00005555556915b7 in btf.type_cnt ()
> (gdb) bt
> #0 0x00005555556915b7 in btf.type_cnt ()
> #1 0x0000555555691fbc in btf_find_by_name_kind ()
> #2 0x00005555556920d0 in btf.find_by_name_kind ()
> #3 0x00005555558a1b7c in init_numa_data (con=0x7fffffffd0a0) at util/bpf_lock_contention.c:125
> #4 0x00005555558a264b in lock_contention_prepare (con=0x7fffffffd0a0) at util/bpf_lock_contention.c:313
> #5 0x0000555555620702 in __cmd_contention (argc=0, argv=0x7fffffffea10) at builtin-lock.c:2084
> #6 0x0000555555622c8d in cmd_lock (argc=0, argv=0x7fffffffea10) at builtin-lock.c:2755
> #7 0x0000555555651451 in run_builtin (p=0x555556104f00 <commands+576>, argc=3, argv=0x7fffffffea10)
> at perf.c:349
> #8 0x00005555556516ed in handle_internal_command (argc=3, argv=0x7fffffffea10) at perf.c:401
> #9 0x000055555565184e in run_argv (argcp=0x7fffffffe7fc, argv=0x7fffffffe7f0) at perf.c:445
> #10 0x0000555555651b9f in main (argc=3, argv=0x7fffffffea10) at perf.c:553
>
> Check if btf loading failed, and don't do anything with it in
> init_numa_data(). This leads to the following error message, instead of
> just a crash:
>
> libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> libbpf: failed to find valid kernel BTF
> libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> libbpf: failed to find valid kernel BTF
> libbpf: Error loading vmlinux BTF: -ESRCH
> libbpf: failed to load BPF skeleton 'lock_contention_bpf': -ESRCH
> Failed to load lock-contention BPF skeleton
> lock contention BPF setup failed
>
> Signed-off-by: Tycho Andersen (AMD) <tycho@kernel.org>
> CC: Ravi Bangoria <ravi.bangoria@amd.com>
> CC: K Prateek Nayak <kprateek.nayak@amd.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
> ---
> tools/perf/util/bpf_lock_contention.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/util/bpf_lock_contention.c b/tools/perf/util/bpf_lock_contention.c
> index 7b5671f13c53..8cd991b3f209 100644
> --- a/tools/perf/util/bpf_lock_contention.c
> +++ b/tools/perf/util/bpf_lock_contention.c
> @@ -117,6 +117,9 @@ static void init_numa_data(struct lock_contention *con)
> long last = -1;
> int ret;
>
> + if (!con->btf)
> + return;
> +
> /*
> * 'struct zone' is embedded in 'struct pglist_data' as an array.
> * As we may not have full information of the struct zone in the
>
> base-commit: 18f7fcd5e69a04df57b563360b88be72471d6b62
> --
> 2.52.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] perf: fix segfault in `lock contention -b`
2026-02-06 0:17 ` Namhyung Kim
@ 2026-02-06 21:59 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2026-02-06 21:59 UTC (permalink / raw)
To: Namhyung Kim
Cc: Tycho Andersen, Peter Zijlstra, Ingo Molnar, Mark Rutland,
Alexander Shishkin, Jiri Olsa, Ian Rogers, Adrian Hunter,
James Clark, Chun-Tse Shao, linux-perf-users, linux-kernel,
Ravi Bangoria, K Prateek Nayak
On Thu, Feb 05, 2026 at 04:17:50PM -0800, Namhyung Kim wrote:
> On Thu, Feb 05, 2026 at 09:32:50AM -0700, Tycho Andersen wrote:
> > Check if btf loading failed, and don't do anything with it in
> > init_numa_data(). This leads to the following error message, instead of
> > just a crash:
> > libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> > libbpf: failed to find valid kernel BTF
> > libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> > libbpf: failed to find valid kernel BTF
> > libbpf: Error loading vmlinux BTF: -ESRCH
> > libbpf: failed to load BPF skeleton 'lock_contention_bpf': -ESRCH
> > Failed to load lock-contention BPF skeleton
> > lock contention BPF setup failed
> > Signed-off-by: Tycho Andersen (AMD) <tycho@kernel.org>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks, applied to perf-tools-next,
- Arnaldo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-02-06 21:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-05 16:32 [PATCH v2] perf: fix segfault in `lock contention -b` Tycho Andersen
2026-02-06 0:17 ` Namhyung Kim
2026-02-06 21:59 ` Arnaldo Carvalho de Melo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.