public inbox for dwarves@vger.kernel.org
 help / color / mirror / Atom feed
From: Ihor Solodrai <ihor.solodrai@linux.dev>
To: Alan Maguire <alan.maguire@oracle.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>,
	Martin KaFai Lau <martin.lau@linux.dev>,
	Eduard Zingerman <eddyz87@gmail.com>, Song Liu <song@kernel.org>,
	Yonghong Song <yonghong.song@linux.dev>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@kernel.org>,
	Stanislav Fomichev <sdf@fomichev.me>, Hao Luo <haoluo@google.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nicolas Schier <nsc@kernel.org>, Tejun Heo <tj@kernel.org>,
	David Vernet <void@manifault.com>,
	Andrea Righi <arighi@nvidia.com>,
	Changwoo Min <changwoo@igalia.com>, Shuah Khan <shuah@kernel.org>,
	Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
	Bill Wendling <morbo@google.com>,
	Justin Stitt <justinstitt@google.com>,
	Donglin Peng <dolinux.peng@gmail.com>
Cc: bpf@vger.kernel.org, dwarves@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org
Subject: Re: [PATCH bpf-next v3 4/6] lib/Kconfig.debug: Set the minimum required pahole version to v1.22
Date: Mon, 15 Dec 2025 18:40:51 -0800	[thread overview]
Message-ID: <85b89c11-8a97-49ec-9c5c-9b028d339195@linux.dev> (raw)
In-Reply-To: <8f946abf-dd88-4fac-8bb4-84fcd8d81cf0@oracle.com>

On 12/12/25 9:26 AM, Alan Maguire wrote:
> On 05/12/2025 22:30, Ihor Solodrai wrote:
>> Subsequent patches in the series change vmlinux linking scripts to
>> unconditionally pass --btf_encode_detached to pahole, which was
>> introduced in v1.22 [1][2].
>>
>> This change allows to remove PAHOLE_HAS_SPLIT_BTF Kconfig option and
>> other checks of older pahole versions.
>>
>> [1] https://github.com/acmel/dwarves/releases/tag/v1.22
>> [2] https://lore.kernel.org/bpf/cbafbf4e-9073-4383-8ee6-1353f9e5869c@oracle.com/
>>
>> Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
>> ---
>>  lib/Kconfig.debug         | 13 ++++---------
>>  scripts/Makefile.btf      |  9 +--------
>>  tools/sched_ext/README.md |  1 -
>>  3 files changed, 5 insertions(+), 18 deletions(-)
>>
>> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
>> index 742b23ef0d8b..3abf3ae554b6 100644
>> --- a/lib/Kconfig.debug
>> +++ b/lib/Kconfig.debug
>> @@ -389,18 +389,13 @@ config DEBUG_INFO_BTF
>>  	depends on !DEBUG_INFO_SPLIT && !DEBUG_INFO_REDUCED
>>  	depends on !GCC_PLUGIN_RANDSTRUCT || COMPILE_TEST
>>  	depends on BPF_SYSCALL
>> -	depends on PAHOLE_VERSION >= 116
>> -	depends on DEBUG_INFO_DWARF4 || PAHOLE_VERSION >= 121
>> +	depends on PAHOLE_VERSION >= 122
>>  	# pahole uses elfutils, which does not have support for Hexagon relocations
>>  	depends on !HEXAGON
>>  	help
>>  	  Generate deduplicated BTF type information from DWARF debug info.
>> -	  Turning this on requires pahole v1.16 or later (v1.21 or later to
>> -	  support DWARF 5), which will convert DWARF type info into equivalent
>> -	  deduplicated BTF type info.
>> -
>> -config PAHOLE_HAS_SPLIT_BTF
>> -	def_bool PAHOLE_VERSION >= 119
>> +	  Turning this on requires pahole v1.22 or later, which will convert
>> +	  DWARF type info into equivalent deduplicated BTF type info.
>>  
>>  config PAHOLE_HAS_BTF_TAG
>>  	def_bool PAHOLE_VERSION >= 123
>> @@ -422,7 +417,7 @@ config PAHOLE_HAS_LANG_EXCLUDE
>>  config DEBUG_INFO_BTF_MODULES
>>  	bool "Generate BTF type information for kernel modules"
>>  	default y
>> -	depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF
>> +	depends on DEBUG_INFO_BTF && MODULES
>>  	help
>>  	  Generate compact split BTF type information for kernel modules.
>>  
>> diff --git a/scripts/Makefile.btf b/scripts/Makefile.btf
>> index db76335dd917..7c1cd6c2ff75 100644
>> --- a/scripts/Makefile.btf
>> +++ b/scripts/Makefile.btf
>> @@ -7,14 +7,7 @@ JOBS := $(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS)))
>>
> 
> hi Ihor, a small suggestion here, and it is orthogonal to what you're 
> doing here, so just for consideration if you're planning a v4 since you're 
> touching this file.

Hi Alan. v4 for sure, and maybe even v5, we'll see.

> 
> We've had problems in the past because we get pahole version from .config
> in Makefile.btf
> 
> pahole-ver := $(CONFIG_PAHOLE_VERSION)
> 
> and it can be outdated.
> 
> Specifically the problem is that if "make oldconfig" is not run after
> updating pahole we don't get the actual pahole version during builds
> and options can be missing. See [1] for an example, but perhaps we
> should do
> 
> pahole-ver := $(shell $(srctree)/scripts/pahole-version.sh)
> 
> in Makefile.btf to ensure the value reflects latest pahole and that
> then determines which options we use? Andrii suggested an approach like
> CC_VERSION_TEXT might be worth pursuing; AFAICT that recomputes the
> CC_VERSION and warns the user if there is a version difference. Given that
> the CONFIG pahole version requirements are all pretty modest - it might
> simply be enough to recompute it in Makefile.btf and perhaps ensure it's 
> not less than CONFIG_PAHOLE_VERSION. Just a thought anyway. Thanks!

Yeah, I am aware of the issue.

I am not sure version refresh in Makefile.btf would be enough, since
there are config dependencies in Kconfig.debug.  So we either need to
trigger re-config, and maybe even force full kernel re-build, or
somehow get rid of the version checks in the kconfig, which may be a
challenge.

I think the simplest thing we could is to check if the version has
changed and fail the build. That's a "panic!" approach though.

I'll look into how compiler versions are checked, maybe it's not that
hard to add similar behavior for pahole.


> 
> Alan
>  
> [1] https://lore.kernel.org/bpf/CAEf4BzYi1xX3p_bY3j9dEuPvtCW3H7z=p2vdn-2GY0OOenxQAg@mail.gmail.com/
> 


  reply	other threads:[~2025-12-16  2:41 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-05 22:30 [PATCH bpf-next v3 0/6] resolve_btfids: Support for BTF modifications Ihor Solodrai
2025-12-05 22:30 ` [PATCH bpf-next v3 1/6] resolve_btfids: Rename object btf field to btf_path Ihor Solodrai
2025-12-12  7:10   ` Eduard Zingerman
2025-12-05 22:30 ` [PATCH bpf-next v3 2/6] resolve_btfids: Factor out load_btf() Ihor Solodrai
2025-12-05 22:57   ` bot+bpf-ci
2025-12-05 23:12     ` Ihor Solodrai
2025-12-05 23:18       ` Chris Mason
2025-12-12  7:10   ` Eduard Zingerman
2025-12-05 22:30 ` [PATCH bpf-next v3 3/6] resolve_btfids: Introduce enum btf_id_kind Ihor Solodrai
2025-12-12  7:09   ` Eduard Zingerman
2025-12-16  2:31     ` Ihor Solodrai
2025-12-16  2:38       ` Eduard Zingerman
2025-12-16  2:52         ` Ihor Solodrai
2025-12-16  2:54           ` Eduard Zingerman
2025-12-05 22:30 ` [PATCH bpf-next v3 4/6] lib/Kconfig.debug: Set the minimum required pahole version to v1.22 Ihor Solodrai
2025-12-05 22:49   ` bot+bpf-ci
2025-12-05 22:51     ` Ihor Solodrai
2025-12-06  0:32   ` Andrii Nakryiko
2025-12-06  0:58     ` Ihor Solodrai
2025-12-12  7:09   ` Eduard Zingerman
2025-12-12 17:26   ` Alan Maguire
2025-12-16  2:40     ` Ihor Solodrai [this message]
2025-12-05 22:30 ` [PATCH bpf-next v3 5/6] selftests/bpf: Run resolve_btfids only for relevant .test.o objects Ihor Solodrai
2025-12-05 22:35   ` [PATCH bpf-next v3 6/6] resolve_btfids: change in-place update with raw binary output Ihor Solodrai
2025-12-06  1:13     ` Andrii Nakryiko
2025-12-06  1:37       ` Ihor Solodrai
2025-12-12  7:08     ` Eduard Zingerman
2025-12-16  2:16       ` Ihor Solodrai

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=85b89c11-8a97-49ec-9c5c-9b028d339195@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=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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox