From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Alan Maguire <alan.maguire@oracle.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
Clark Williams <williams@redhat.com>,
Kate Carcia <kcarcia@redhat.com>,
dwarves@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Matthias Schwarzott <zzam@gentoo.org>,
Andrii Nakryiko <andrii@kernel.org>,
Eduard Zingerman <eddyz87@gmail.com>, Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>
Subject: [PATCH 2/5] tests default_vmlinux_btf: Introduce test for using BTF by default
Date: Tue, 19 Nov 2024 10:40:29 -0300 [thread overview]
Message-ID: <20241119134032.783215-3-acme@kernel.org> (raw)
In-Reply-To: <20241119134032.783215-1-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
On a system without any debugging info or when one specifies BTF as the
only BTF info desired but no BTF is available (or invalidated using
PAHOLE_VMLINUX_BTF_FILENAME to an invalid/non-existent file), we're
getting a segfault:
root@x1:/home/acme/git/pahole# export PAHOLE_VMLINUX_BTF_FILENAME=non-existent
root@x1:/home/acme/git/pahole# pahole --running_kernel_vmlinux
pahole: couldn't find a vmlinux that matches the running kernel
HINT: Maybe you're inside a container or missing a debuginfo package?
root@x1:/home/acme/git/pahole# pahole
Segmentation fault (core dumped)
root@x1:/home/acme/git/pahole#
So add a test that checks for that before we fix it:
root@x1:/home/acme/git/pahole# tests/default_vmlinux_btf.sh
Default BTF on a system without BTF: FAILED
root@x1:/home/acme/git/pahole#
Reported-by: Matthias Schwarzott <zzam@gentoo.org>
Cc: Alan Maguire <alan.maguire@oracle.com>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Eduard Zingerman <eddyz87@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Song Liu <song@kernel.org>
Cc: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tests/default_vmlinux_btf.sh | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100755 tests/default_vmlinux_btf.sh
diff --git a/tests/default_vmlinux_btf.sh b/tests/default_vmlinux_btf.sh
new file mode 100755
index 0000000000000000..a9effa2d6d37e0ee
--- /dev/null
+++ b/tests/default_vmlinux_btf.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+echo -n "Default BTF on a system without BTF: "
+
+ulimit -c 0
+
+# To suppress the "Segmentation fault core dumped" message in bash we
+# pipe it to some other command, if it segfaults it will not produce any
+# lines and thus we can infer from the number of lines that the segfault
+# took place, tricky, but couldn't find any other way to check this
+# while suppressing the core dumped message. -acme
+
+nr_lines=$(PAHOLE_VMLINUX_BTF_FILENAME=foobar pahole -F btf list_head 2>&1 | wc -l)
+
+if [ $nr_lines -eq 0 ] ; then
+ echo "FAILED"
+ exit 1
+fi
+
+echo "Ok"
+exit 0
--
2.47.0
next prev parent reply other threads:[~2024-11-19 13:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-19 13:40 [PATCH 0/5] Fix segfaults related to missing BTF support Arnaldo Carvalho de Melo
2024-11-19 13:40 ` [PATCH 1/5] core: Add method to get the vmlinux BTF filename, allow overriding it via env var Arnaldo Carvalho de Melo
2024-11-19 13:40 ` Arnaldo Carvalho de Melo [this message]
2024-11-19 13:40 ` [PATCH 3/5] pahole: Honour exclusive BTF loading Arnaldo Carvalho de Melo
2024-11-19 17:47 ` Alan Maguire
2024-11-19 20:18 ` Arnaldo Carvalho de Melo
2024-11-19 20:19 ` Arnaldo Carvalho de Melo
2024-11-19 22:04 ` Eduard Zingerman
2024-11-19 22:28 ` Alan Maguire
2024-11-19 22:33 ` Eduard Zingerman
2024-11-19 13:40 ` [PATCH 4/5] tests default_vmlinux_btf: Cover the no args segfault too Arnaldo Carvalho de Melo
2024-11-19 13:40 ` [PATCH 5/5] core, libctf: Check if constructor arguments are NULL before using them Arnaldo Carvalho de Melo
-- strict thread matches above, loose matches on Subject: below --
2024-11-18 20:41 [PATCH 0/5] Fix segfaults related to missing BTF support Arnaldo Carvalho de Melo
[not found] ` <20241118204146.772762-3-acme@kernel.org>
[not found] ` <90d7282a-60af-4087-8e08-fed3fbe348ee@oracle.com>
2024-11-19 17:50 ` [PATCH 2/5] tests default_vmlinux_btf: Introduce test for using BTF by default Arnaldo Carvalho de Melo
[not found] ` <33b85d2c1adafb5a46a874dfcfd43682395e1564.camel@gmail.com>
2024-11-19 19:49 ` Arnaldo Carvalho de Melo
2024-11-19 19:54 ` Eduard Zingerman
2024-11-19 19:55 ` Arnaldo Carvalho de Melo
2024-11-19 20:12 ` Arnaldo Carvalho de Melo
2024-11-19 20:13 ` Eduard Zingerman
2024-11-19 20:15 ` Arnaldo Carvalho de Melo
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=20241119134032.783215-3-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=alan.maguire@oracle.com \
--cc=andrii@kernel.org \
--cc=dwarves@vger.kernel.org \
--cc=eddyz87@gmail.com \
--cc=jolsa@kernel.org \
--cc=kcarcia@redhat.com \
--cc=song@kernel.org \
--cc=williams@redhat.com \
--cc=yonghong.song@linux.dev \
--cc=zzam@gentoo.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.