From: "Ricardo B. Marlière" <rbm@suse.com>
To: "Alexei Starovoitov" <alexei.starovoitov@gmail.com>,
<sashiko@lists.linux.dev>
Cc: "Ricardo B. Marlière" <rbm@suse.com>, bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH bpf-next v6 02/11] selftests/bpf: Fix test_kmods KDIR to honor O= and distro kernels
Date: Mon, 27 Apr 2026 18:23:46 -0300 [thread overview]
Message-ID: <DI49519GKW4C.165FTRCZIBL0P@suse.com> (raw)
In-Reply-To: <CAADnVQLXvs_+c67FH5rk15L+QDGS0=UovgOaTvHeQ9-_suzo=g@mail.gmail.com>
On Sun Apr 26, 2026 at 8:40 PM -03, Alexei Starovoitov wrote:
> On Thu, Apr 16, 2026 at 5:53 AM <sashiko-bot@kernel.org> wrote:
>>
>> Sashiko AI review found 2 potential issue(s):
>> - [Medium] Relative paths passed via `O=` are incorrectly evaluated from the kernel source root instead of the invocation directory.
>> - [Medium] The `make clean` target unconditionally fails and aborts the build if the kernel source tree is unconfigured and distro headers are missing.
>> --
>>
>> commit 533e8d39cc98f56f3dff4f8c5bff0dcd49fc6ef1
>> Author: Ricardo B. Marlière <rbm@suse.com>
>>
>> selftests/bpf: Fix test_kmods KDIR to honor O= and distro kernels
>>
>> This commit modifies test_kmods/Makefile to honor O= and KBUILD_OUTPUT, and
>> adds a fallback to /lib/modules/$(uname -r)/build for distro kernels. It also
>> makes missing KDIR silently skipped when building in permissive mode.
>>
>> > diff --git a/tools/testing/selftests/bpf/test_kmods/Makefile b/tools/testing/selftests/bpf/test_kmods/Makefile
>> > index 63c4d3f6a12f6..10f202bd0d8c2 100644
>> > --- a/tools/testing/selftests/bpf/test_kmods/Makefile
>> > +++ b/tools/testing/selftests/bpf/test_kmods/Makefile
>> > @@ -1,5 +1,7 @@
>> > TEST_KMOD_DIR := $(realpath $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
>> > -KDIR ?= $(abspath $(TEST_KMOD_DIR)/../../../../..)
>> > +SRCTREE_KDIR := $(abspath $(TEST_KMOD_DIR)/../../../../..)
>> > +KMOD_O := $(or $(O),$(KBUILD_OUTPUT))
>>
>> Will this break out-of-tree builds if a user passes a relative path?
>>
>> If a user builds selftests with a relative O= path (e.g. make O=out), KMOD_O
>> captures this relative string and passes it unaltered to the kernel build
>> system via make -C $(KDIR) O=$(KMOD_O).
>>
>> Because make -C changes the working directory to $(KDIR) before evaluating
>> O=, the relative path will be evaluated relative to the kernel root rather
>> than the directory where make was originally invoked.
>>
>> [ ... ]
>> > @@ -14,8 +16,24 @@ $(foreach m,$(MODULES),$(eval obj-m += $(m:.ko=.o)))
>> >
>> > CFLAGS_bpf_testmod.o = -I$(src)
>> >
>> > +# When BPF_STRICT_BUILD != 0, a missing KDIR is fatal (the default).
>> > +# When permissive, skip silently.
>> > +PERMISSIVE := $(filter 0,$(BPF_STRICT_BUILD))
>> > +
>> > all:
>> > - $(Q)$(MAKE) -C $(KDIR) M=$(TEST_KMOD_DIR) modules
>> > +ifeq ($(PERMISSIVE),)
>> > + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=$(KMOD_O),KBUILD_OUTPUT=) \
>> > + M=$(TEST_KMOD_DIR) modules
>>
>> [ ... ]
>>
>> > clean:
>> > - $(Q)$(MAKE) -C $(KDIR) M=$(TEST_KMOD_DIR) clean
>> > +ifeq ($(PERMISSIVE),)
>> > + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=$(KMOD_O),KBUILD_OUTPUT=) \
>> > + M=$(TEST_KMOD_DIR) clean
>>
>> Does this unconditionally abort make clean if the kernel source tree is
>> unconfigured and distro headers are missing?
>
> I think both issues flagged are valid and need to be addressed.
Yes, indeed! I will respin a v8 (this is v6) later addressing these and
a few other points. Thanks for checking, it means there's still hope for this
series :)
I wish there was a way to trigger sashiko without having to send it to
the ML.
next prev parent reply other threads:[~2026-04-27 21:23 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-16 12:21 [PATCH bpf-next v6 00/11] selftests/bpf: Tolerate partial builds across kernel configs Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 01/11] selftests/bpf: Add BPF_STRICT_BUILD toggle Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 02/11] selftests/bpf: Fix test_kmods KDIR to honor O= and distro kernels Ricardo B. Marlière
2026-04-16 12:53 ` sashiko-bot
2026-04-26 23:40 ` Alexei Starovoitov
2026-04-27 21:23 ` Ricardo B. Marlière [this message]
2026-04-16 12:21 ` [PATCH bpf-next v6 03/11] selftests/bpf: Tolerate BPF and skeleton generation failures Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 04/11] selftests/bpf: Avoid rebuilds when running emit_tests Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 05/11] selftests/bpf: Make skeleton headers order-only prerequisites of .test.d Ricardo B. Marlière
2026-04-25 1:13 ` sashiko-bot
2026-04-16 12:21 ` [PATCH bpf-next v6 06/11] selftests/bpf: Tolerate test file compilation failures Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 07/11] selftests/bpf: Skip tests whose objects were not built Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 08/11] selftests/bpf: Allow test_progs to link with a partial object set Ricardo B. Marlière
2026-04-16 13:03 ` bot+bpf-ci
2026-04-16 18:11 ` sashiko-bot
2026-04-16 12:21 ` [PATCH bpf-next v6 09/11] selftests/bpf: Tolerate benchmark build failures Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 10/11] selftests/bpf: Provide weak definitions for cross-test functions Ricardo B. Marlière
2026-04-16 12:21 ` [PATCH bpf-next v6 11/11] selftests/bpf: Tolerate missing files during install Ricardo B. Marlière
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=DI49519GKW4C.165FTRCZIBL0P@suse.com \
--to=rbm@suse.com \
--cc=alexei.starovoitov@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=sashiko@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 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.