All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ihor Solodrai <ihor.solodrai@linux.dev>
To: Eduard Zingerman <eddyz87@gmail.com>,
	Alan Maguire <alan.maguire@oracle.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Andrea Righi <arighi@nvidia.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Bill Wendling <morbo@google.com>,
	Changwoo Min <changwoo@igalia.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	David Vernet <void@manifault.com>,
	Donglin Peng <dolinux.peng@gmail.com>,
	Hao Luo <haoluo@google.com>, Jiri Olsa <jolsa@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Justin Stitt <justinstitt@google.com>,
	KP Singh <kpsingh@kernel.org>,
	Martin KaFai Lau <martin.lau@linux.dev>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
	Nicolas Schier <nsc@kernel.org>, Shuah Khan <shuah@kernel.org>,
	Song Liu <song@kernel.org>, Stanislav Fomichev <sdf@fomichev.me>,
	Tejun Heo <tj@kernel.org>,
	Yonghong Song <yonghong.song@linux.dev>
Cc: bpf@vger.kernel.org, dwarves@vger.kernel.org,
	linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	sched-ext@lists.linux.dev
Subject: Re: [PATCH bpf-next v4 5/8] kbuild: Sync kconfig when PAHOLE_VERSION changes
Date: Thu, 18 Dec 2025 13:33:21 -0800	[thread overview]
Message-ID: <9640d2f5-7e6e-4526-a9ab-831bd826f01d@linux.dev> (raw)
In-Reply-To: <8be2cafa00b759220e73a6ce837ac9a3ff52da1f.camel@gmail.com>

On 12/18/25 11:21 AM, Eduard Zingerman wrote:
> On Wed, 2025-12-17 at 16:33 -0800, Ihor Solodrai wrote:
>> This patch implements kconfig re-sync when the pahole version changes
>> between builds, similar to how it happens for compiler version change
>> via CC_VERSION_TEXT.
>>
>> Define PAHOLE_VERSION in the top-level Makefile and export it for
>> config builds. Set CONFIG_PAHOLE_VERSION default to the exported
>> variable.
>>
>> Kconfig records the PAHOLE_VERSION value in
>> include/config/auto.conf.cmd [1].
>>
>> The Makefile includes auto.conf.cmd, so if PAHOLE_VERSION changes
>> between builds, make detects a dependency change and triggers
>> syncconfig to update the kconfig [2].
>>
>> For external module builds, add a warning message in the prepare
>> target, similar to the existing compiler version mismatch warning.
>>
>> Note that if pahole is not installed or available, PAHOLE_VERSION is
>> set to 0 by pahole-version.sh, so the (un)installation of pahole is
>> treated as a version change.
>>
>> See previous discussions for context [3].
>>
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/kconfig/preprocess.c?h=v6.18#n91
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Makefile?h=v6.18#n815
>> [3] https://lore.kernel.org/bpf/8f946abf-dd88-4fac-8bb4-84fcd8d81cf0@oracle.com/
>>
>> Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
>> ---
> 
> When building BPF selftest modules the pahole version change was
> detected, but it seems that BTF rebuild was not triggered:
> 
>   $ (cd ./tools/testing/selftests/bpf/test_kmods/; make -j)
>   make[1]: Entering directory '/home/ezingerman/bpf-next'
>   make[2]: Entering directory '/home/ezingerman/bpf-next/tools/testing/selftests/bpf/test_kmods'
>     CC [M]  bpf_testmod.o
>     CC [M]  bpf_test_no_cfi.o
>     CC [M]  bpf_test_modorder_x.o
>     CC [M]  bpf_test_modorder_y.o
>     CC [M]  bpf_test_rqspinlock.o
>     MODPOST Module.symvers
>     CC [M]  bpf_testmod.mod.o
>     CC [M]  .module-common.o
>     CC [M]  bpf_test_no_cfi.mod.o
>     CC [M]  bpf_test_modorder_x.mod.o
>     CC [M]  bpf_test_modorder_y.mod.o
>     CC [M]  bpf_test_rqspinlock.mod.o
>     LD [M]  bpf_test_modorder_x.ko
>     LD [M]  bpf_testmod.ko
>     LD [M]  bpf_test_modorder_y.ko
>     LD [M]  bpf_test_no_cfi.ko
>     BTF [M] bpf_test_modorder_x.ko
>     LD [M]  bpf_test_rqspinlock.ko
>     BTF     bpf_test_modorder_x.ko
>     BTF [M] bpf_test_no_cfi.ko
>     BTF [M] bpf_test_modorder_y.ko
>     BTF [M] bpf_testmod.ko
>     BTF     bpf_test_no_cfi.ko
>     BTF     bpf_test_modorder_y.ko
>     BTF [M] bpf_test_rqspinlock.ko
>     BTF     bpf_testmod.ko
>     BTF     bpf_test_rqspinlock.ko
>     BTFIDS  bpf_test_modorder_x.ko
>     BTFIDS  bpf_test_modorder_y.ko
>     BTFIDS  bpf_test_no_cfi.ko
>     BTFIDS  bpf_testmod.ko
>     OBJCOPY bpf_test_modorder_x.ko.BTF
>     BTFIDS  bpf_test_rqspinlock.ko
>     OBJCOPY bpf_test_no_cfi.ko.BTF
>     OBJCOPY bpf_test_modorder_y.ko.BTF
>     OBJCOPY bpf_testmod.ko.BTF
>     OBJCOPY bpf_test_rqspinlock.ko.BTF
>   make[2]: Leaving directory '/home/ezingerman/bpf-next/tools/testing/selftests/bpf/test_kmods'
>   make[1]: Leaving directory '/home/ezingerman/bpf-next'
>   [~/bpf-next]
>   $ (cd ./tools/testing/selftests/bpf/test_kmods/; make -j)
>   make[1]: Entering directory '/home/ezingerman/bpf-next'
>   make[2]: Entering directory '/home/ezingerman/bpf-next/tools/testing/selftests/bpf/test_kmods'
>   make[2]: Leaving directory '/home/ezingerman/bpf-next/tools/testing/selftests/bpf/test_kmods'
>   make[1]: Leaving directory '/home/ezingerman/bpf-next'
> 
> ... update pahole from version 131 to 132 ...
> 
>   [~/bpf-next]
>   $ (cd ./tools/testing/selftests/bpf/test_kmods/; make -j)
>   make[1]: Entering directory '/home/ezingerman/bpf-next'
>   make[2]: Entering directory '/home/ezingerman/bpf-next/tools/testing/selftests/bpf/test_kmods'
>   warning: pahole version differs from the one used to build the kernel
>     The kernel was built with: 131
>     You are using:             132
>   make[2]: Leaving directory '/home/ezingerman/bpf-next/tools/testing/selftests/bpf/test_kmods'
>   make[1]: Leaving directory '/home/ezingerman/bpf-next'
> 
> Is this an expected behavior?

Yes, it's expected.

I simply repeated the logic used for compiler version change: for
external modules only the warning is printed.

See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Makefile?h=v6.18#n1857



  reply	other threads:[~2025-12-18 21:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-18  0:33 [PATCH bpf-next v4 0/8] resolve_btfids: Support for BTF modifications Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 1/8] resolve_btfids: Rename object btf field to btf_path Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 2/8] resolve_btfids: Factor out load_btf() Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 3/8] resolve_btfids: Introduce enum btf_id_kind Ihor Solodrai
2025-12-18  0:47   ` bot+bpf-ci
2025-12-18 17:46     ` Ihor Solodrai
2025-12-18 19:58       ` Andrii Nakryiko
2025-12-18 20:03         ` Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 4/8] resolve_btfids: Always build with -Wall -Werror Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 5/8] kbuild: Sync kconfig when PAHOLE_VERSION changes Ihor Solodrai
2025-12-18 19:21   ` Eduard Zingerman
2025-12-18 21:33     ` Ihor Solodrai [this message]
2025-12-18 22:36       ` Eduard Zingerman
2025-12-18 21:01   ` Andrii Nakryiko
2025-12-18  0:33 ` [PATCH bpf-next v4 6/8] lib/Kconfig.debug: Set the minimum required pahole version to v1.22 Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 7/8] selftests/bpf: Run resolve_btfids only for relevant .test.o objects Ihor Solodrai
2025-12-18 19:22   ` Eduard Zingerman
2025-12-18  0:33 ` [PATCH bpf-next v4 8/8] resolve_btfids: Change in-place update with raw binary output Ihor Solodrai
2025-12-18 17:54   ` Ihor Solodrai
2025-12-18 21:15     ` Andrii Nakryiko
2025-12-18 22:39       ` Eduard Zingerman

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=9640d2f5-7e6e-4526-a9ab-831bd826f01d@linux.dev \
    --to=ihor.solodrai@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=alan.maguire@oracle.com \
    --cc=andrii@kernel.org \
    --cc=arighi@nvidia.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=changwoo@igalia.com \
    --cc=corbet@lwn.net \
    --cc=daniel@iogearbox.net \
    --cc=dolinux.peng@gmail.com \
    --cc=dwarves@vger.kernel.org \
    --cc=eddyz87@gmail.com \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=justinstitt@google.com \
    --cc=kpsingh@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.lau@linux.dev \
    --cc=morbo@google.com \
    --cc=nathan@kernel.org \
    --cc=nick.desaulniers+lkml@gmail.com \
    --cc=nsc@kernel.org \
    --cc=sched-ext@lists.linux.dev \
    --cc=sdf@fomichev.me \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=tj@kernel.org \
    --cc=void@manifault.com \
    --cc=yonghong.song@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.