From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
jolsa@kernel.org, adrian.hunter@intel.com, irogers@google.com,
hbathini@linux.ibm.com, linux-kernel@vger.kernel.org,
linux-perf-users@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
maddy@linux.ibm.com, kjain@linux.ibm.com,
disgoel@linux.vnet.ibm.com
Subject: Re: [PATCH] tools/perf: Fix segfault during perf record --off-cpu when debuginfo is not enabled
Date: Mon, 13 Jan 2025 12:29:05 -0300 [thread overview]
Message-ID: <Z4UxQSAKoLskEILD@x1> (raw)
In-Reply-To: <Z3xKTKkVSf7tWCtD@google.com>
On Mon, Jan 06, 2025 at 01:25:32PM -0800, Namhyung Kim wrote:
> On Fri, Dec 27, 2024 at 04:18:32PM +0530, Athira Rajeev wrote:
> >
> >
> > > On 23 Dec 2024, at 7:28 PM, Athira Rajeev <atrajeev@linux.vnet.ibm.com> wrote:
> > >
> > > When kernel is built without debuginfo, running perf record with
> > > --off-cpu results in segfault as below:
> > >
> > > ./perf record --off-cpu -e dummy sleep 1
> > > libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled?
> > > libbpf: failed to find '.BTF' ELF section in /lib/modules/6.13.0-rc3+/build/vmlinux
> > > libbpf: failed to find valid kernel BTF
> > > Segmentation fault (core dumped)
> > >
> > > The backtrace pointed to:
> > >
> > > #0 0x00000000100fb17c in btf.type_cnt ()
> > > #1 0x00000000100fc1a8 in btf_find_by_name_kind ()
> > > #2 0x00000000100fc38c in btf.find_by_name_kind ()
> > > #3 0x00000000102ee3ac in off_cpu_prepare ()
> > > #4 0x000000001002f78c in cmd_record ()
> > > #5 0x00000000100aee78 in run_builtin ()
> > > #6 0x00000000100af3e4 in handle_internal_command ()
> > > #7 0x000000001001004c in main ()
> > >
> > > Code sequence is:
> > > static void check_sched_switch_args(void)
> > > {
> > > struct btf *btf = btf__load_vmlinux_btf();
> > > const struct btf_type *t1, *t2, *t3;
> > > u32 type_id;
> > >
> > > type_id = btf__find_by_name_kind(btf, "btf_trace_sched_switch",
> > > BTF_KIND_TYPEDEF);
> > >
> > > btf__load_vmlinux_btf fails when CONFIG_DEBUG_INFO_BTF is not enabled.
> > > Here bpf__find_by_name_kind calls btf__type_cnt with NULL btf
> > > value and results in segfault. To fix this, add a check to see if
> > > btf is not NULL before invoking bpf__find_by_name_kind
> > >
> > > Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
>
> Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Thanks, applied to perf-tools-next,
- Arnaldo
next prev parent reply other threads:[~2025-01-13 15:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-23 13:58 [PATCH] tools/perf: Fix segfault during perf record --off-cpu when debuginfo is not enabled Athira Rajeev
2024-12-27 10:48 ` Athira Rajeev
2025-01-06 21:25 ` Namhyung Kim
2025-01-10 7:42 ` Athira Rajeev
2025-01-13 15:29 ` Arnaldo Carvalho de Melo [this message]
2025-01-14 7:56 ` Athira Rajeev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z4UxQSAKoLskEILD@x1 \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=disgoel@linux.vnet.ibm.com \
--cc=hbathini@linux.ibm.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kjain@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.