From: sashiko-bot@kernel.org
To: "Alan Maguire" <alan.maguire@oracle.com>
Cc: "Petr Pavlu" <petr.pavlu@suse.com>,
linux-modules@vger.kernel.org, bpf@vger.kernel.org
Subject: Re: [PATCH v4 bpf-next 6/7] selftests/bpf: Test BTF sysfs inline representations
Date: Fri, 09 Oct 2026 12:25:09 +0000 [thread overview]
Message-ID: <sashiko-outbox-165534@kernel.org> (raw)
In-Reply-To: <20261009112324.1442319-7-alan.maguire@oracle.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] selftests: flaky test in test_btf_inline_sysfs_all() due to missing -ENOENT check
--
commit df90a8288d824aad2169294b18c9baff7baa8c42
Author: Alan Maguire <alan.maguire@oracle.com>
selftests/bpf: Test BTF sysfs inline representations
This commit adds tests to load vmlinux, vmlinux.inline, and module entries
from /sys/fs/btf to sanity-check inline representations and kernel
relocations. It also tests mmap functionality for vmlinux.inline.
> diff --git a/tools/testing/selftests/bpf/prog_tests/btf_sysfs.c b/tools/testing/selftests/bpf/prog_tests/btf_sysfs.c
> --- a/tools/testing/selftests/bpf/prog_tests/btf_sysfs.c
> +++ b/tools/testing/selftests/bpf/prog_tests/btf_sysfs.c
[ ... ]
> +static void test_btf_inline_sysfs_all(void)
> +{
[ ... ]
> + while ((dentry = readdir(dir)) != NULL) {
[ ... ]
> + if (!base_btf) {
> + module_btf = btf__parse_split(btf_path, vmlinux_btf);
> + err = libbpf_get_error(module_btf);
> + if (err) {
> + /* A module can be unloaded while its sysfs entry is iterated. */
> + if (err == -ENOENT)
> + continue;
> + ASSERT_OK(err, "parse_module_btf");
> + continue;
> + }
> + base_btf = module_btf;
> + }
> + if (stat(inline_path, &st)) {
> + err = errno;
> + if (err != ENOENT)
> + ASSERT_OK(err, "stat_inline_btf");
> + btf__free(module_btf);
> + continue;
> + }
> + if (base_btf == vmlinux_btf)
> + test_btf_mmap_sysfs(inline_path, base_btf);
> + inline_btf = btf__parse_split(inline_path, base_btf);
> + err = libbpf_get_error(inline_btf);
> + if (!err)
> + btf__free(inline_btf);
> + ASSERT_OK(err, "parse_inline_btf");
[Severity: Medium]
Is this ASSERT_OK() missing a check for -ENOENT?
When parsing the module BTF earlier in the loop, the code correctly handles
the case where a module is unloaded during sysfs iteration by checking for
-ENOENT.
However, a time-of-check to time-of-use race can occur here. If the module
is unloaded in the small window between stat() and btf__parse_split(), the
parse function will return -ENOENT. This causes ASSERT_OK() to fail and
could lead to flaky tests in parallel testing environments.
> + btf__free(module_btf);
> + }
> + closedir(dir);
> +
> + btf__free(vmlinux_btf);
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261009112324.1442319-1-alan.maguire@oracle.com?part=6
next prev parent reply other threads:[~2026-10-09 12:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 11:23 [PATCH v4 bpf-next 0/7] kbuild, bpf: Support inline info in BTF Alan Maguire
2026-10-09 11:23 ` [PATCH v4 bpf-next 1/7] resolve_btfids: Build separate main and inline BTF objects Alan Maguire
2026-10-09 11:23 ` [PATCH v4 bpf-next 2/7] resolve_btfids: Populate BTF link section Alan Maguire
2026-10-09 12:24 ` bot+bpf-ci
2026-10-09 11:23 ` [PATCH v4 bpf-next 3/7] kbuild, btf: Expose vmlinux inline BTF through sysfs Alan Maguire
2026-10-09 11:23 ` [PATCH v4 bpf-next 4/7] btf: Preserve string relocation maps for split BTF Alan Maguire
2026-10-09 12:01 ` sashiko-bot
2026-10-09 14:00 ` Alan Maguire
2026-10-09 11:23 ` [PATCH v4 bpf-next 5/7] btf: Relocate and expose module inline BTF Alan Maguire
2026-10-09 11:23 ` [PATCH v4 bpf-next 6/7] selftests/bpf: Test BTF sysfs inline representations Alan Maguire
2026-10-09 12:25 ` sashiko-bot [this message]
2026-10-11 14:29 ` Alexei Starovoitov
2026-10-09 11:23 ` [PATCH v4 bpf-next 7/7] selftests/bpf: Add a test verifying inline information Alan Maguire
2026-10-09 12:33 ` sashiko-bot
2026-10-11 14:40 ` [PATCH v4 bpf-next 0/7] kbuild, bpf: Support inline info in BTF patchwork-bot+netdevbpf
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=sashiko-outbox-165534@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=alan.maguire@oracle.com \
--cc=bpf@vger.kernel.org \
--cc=linux-modules@vger.kernel.org \
--cc=petr.pavlu@suse.com \
--cc=sashiko-reviews@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox