hi, we need to be able to use latest pahole options for 6.1 kernels, updating the scripts/pahole-flags.sh with that (clean backports).
thanks, jirka
v2 changes: - added missing SOB
--- Alan Maguire (1): bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
Martin Rodriguez Reboredo (1): btf, scripts: Exclude Rust CUs with pahole
init/Kconfig | 2 +- lib/Kconfig.debug | 9 +++++++++ scripts/pahole-flags.sh | 7 +++++++ 3 files changed, 17 insertions(+), 1 deletion(-)
From: Martin Rodriguez Reboredo yakoyoku@gmail.com
commit c1177979af9c616661a126a80dd486ad0543b836 upstream.
Version 1.24 of pahole has the capability to exclude compilation units (CUs) of specific languages [1] [2]. Rust, as of writing, is not currently supported by pahole and if it's used with a build that has BTF debugging enabled it results in malformed kernel and module binaries [3]. So it's better for pahole to exclude Rust CUs until support for it arrives.
Co-developed-by: Eric Curtin ecurtin@redhat.com Signed-off-by: Eric Curtin ecurtin@redhat.com Signed-off-by: Martin Rodriguez Reboredo yakoyoku@gmail.com Signed-off-by: Daniel Borkmann daniel@iogearbox.net Tested-by: Eric Curtin ecurtin@redhat.com Reviewed-by: Neal Gompa neal@gompa.dev Acked-by: Miguel Ojeda ojeda@kernel.org Acked-by: Arnaldo Carvalho de Melo acme@redhat.com Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=49358dfe2a... [1] Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=8ee363790b... [2] Link: https://github.com/Rust-for-Linux/linux/issues/735 [3] Link: https://lore.kernel.org/bpf/20230111152050.559334-1-yakoyoku@gmail.com Signed-off-by: Jiri Olsa jolsa@kernel.org --- init/Kconfig | 2 +- lib/Kconfig.debug | 9 +++++++++ scripts/pahole-flags.sh | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/init/Kconfig b/init/Kconfig index de255842f5d0..148704640252 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1914,7 +1914,7 @@ config RUST depends on !MODVERSIONS depends on !GCC_PLUGINS depends on !RANDSTRUCT - depends on !DEBUG_INFO_BTF + depends on !DEBUG_INFO_BTF || PAHOLE_HAS_LANG_EXCLUDE select CONSTRUCTORS help Enables Rust support in the kernel. diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 4db0199651f5..95541b99aa8e 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -364,6 +364,15 @@ config PAHOLE_HAS_BTF_TAG btf_decl_tag) or not. Currently only clang compiler implements these attributes, so make the config depend on CC_IS_CLANG.
+config PAHOLE_HAS_LANG_EXCLUDE + def_bool PAHOLE_VERSION >= 124 + help + Support for the --lang_exclude flag which makes pahole exclude + compilation units from the supplied language. Used in Kbuild to + omit Rust CUs which are not supported in version 1.24 of pahole, + otherwise it would emit malformed kernel and module binaries when + using DEBUG_INFO_BTF_MODULES. + config DEBUG_INFO_BTF_MODULES def_bool y depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh index 0d99ef17e4a5..1f1f1d397c39 100755 --- a/scripts/pahole-flags.sh +++ b/scripts/pahole-flags.sh @@ -19,5 +19,9 @@ fi if [ "${pahole_ver}" -ge "122" ]; then extra_paholeopt="${extra_paholeopt} -j" fi +if [ "${pahole_ver}" -ge "124" ]; then + # see PAHOLE_HAS_LANG_EXCLUDE + extra_paholeopt="${extra_paholeopt} --lang_exclude=rust" +fi
echo ${extra_paholeopt}
Hi,
Thanks for your patch.
FYI: kernel test robot notices the stable kernel rule is not satisfied.
The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#opti...
Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree. Subject: [PATCHv2 stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Link: https://lore.kernel.org/stable/20240117133520.733288-2-jolsa%40kernel.org
On Wed, Jan 17, 2024 at 09:37:14PM +0800, kernel test robot wrote:
Hi,
Thanks for your patch.
FYI: kernel test robot notices the stable kernel rule is not satisfied.
The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#opti...
Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree. Subject: [PATCHv2 stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Link: https://lore.kernel.org/stable/20240117133520.733288-2-jolsa%40kernel.org
False positive :(
On Wed, Jan 17, 2024 at 05:07:55PM +0100, Greg KH wrote:
On Wed, Jan 17, 2024 at 09:37:14PM +0800, kernel test robot wrote:
Hi,
Thanks for your patch.
FYI: kernel test robot notices the stable kernel rule is not satisfied.
The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#opti...
Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree. Subject: [PATCHv2 stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Link: https://lore.kernel.org/stable/20240117133520.733288-2-jolsa%40kernel.org
False positive :(
Sorry for the false positive. The bot wrongly parsed the patch prefix. We've fixed the bug now.
From: Alan Maguire alan.maguire@oracle.com
commit 7b99f75942da332e3f4f865e55a10fec95a30d4f upstream.
v1.25 of pahole supports filtering out functions with multiple inconsistent function prototypes or optimized-out parameters from the BTF representation. These present problems because there is no additional info in BTF saying which inconsistent prototype matches which function instance to help guide attachment, and functions with optimized-out parameters can lead to incorrect assumptions about register contents.
So for now, filter out such functions while adding BTF representations for functions that have "."-suffixes (foo.isra.0) but not optimized-out parameters. This patch assumes that below linked changes land in pahole for v1.25.
Issues with pahole filtering being too aggressive in removing functions appear to be resolved now, but CI and further testing will confirm.
Signed-off-by: Alan Maguire alan.maguire@oracle.com Acked-by: Jiri Olsa jolsa@kernel.org Link: https://lore.kernel.org/r/20230510130241.1696561-1-alan.maguire@oracle.com Signed-off-by: Alexei Starovoitov ast@kernel.org Signed-off-by: Jiri Olsa jolsa@kernel.org --- scripts/pahole-flags.sh | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh index 1f1f1d397c39..728d55190d97 100755 --- a/scripts/pahole-flags.sh +++ b/scripts/pahole-flags.sh @@ -23,5 +23,8 @@ if [ "${pahole_ver}" -ge "124" ]; then # see PAHOLE_HAS_LANG_EXCLUDE extra_paholeopt="${extra_paholeopt} --lang_exclude=rust" fi +if [ "${pahole_ver}" -ge "125" ]; then + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_inconsistent_proto --btf_gen_optimized" +fi
echo ${extra_paholeopt}
On Wed, Jan 17, 2024 at 02:35:18PM +0100, Jiri Olsa wrote:
hi, we need to be able to use latest pahole options for 6.1 kernels, updating the scripts/pahole-flags.sh with that (clean backports).
thanks, jirka
v2 changes:
- added missing SOB
Alan Maguire (1): bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
Martin Rodriguez Reboredo (1): btf, scripts: Exclude Rust CUs with pahole
init/Kconfig | 2 +- lib/Kconfig.debug | 9 +++++++++ scripts/pahole-flags.sh | 7 +++++++ 3 files changed, 17 insertions(+), 1 deletion(-)
All now queued up, thanks.
greg k-h
linux-stable-mirror@lists.linaro.org