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
--- 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 --- 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}
On Wed, Jan 17, 2024 at 10:44:23AM +0100, Jiri Olsa wrote:
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
You are forwarding this patch on, you also need to sign-off on it :(
thanks,
greg k-h
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 --- 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 10:44:24AM +0100, Jiri Olsa wrote:
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
scripts/pahole-flags.sh | 3 +++ 1 file changed, 3 insertions(+)
Again, a signed-off-by please.
Resend the whole series?
thanks,
greg k-h
On Wed, Jan 17, 2024 at 12:02:44PM +0100, Greg KH wrote:
On Wed, Jan 17, 2024 at 10:44:24AM +0100, Jiri Olsa wrote:
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
scripts/pahole-flags.sh | 3 +++ 1 file changed, 3 insertions(+)
Again, a signed-off-by please.
Resend the whole series?
ah right.. sure, np
jirka
linux-stable-mirror@lists.linaro.org