public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH stable 6.1 0/2] btf, scripts: Update pahole options
@ 2024-01-17  9:44 Jiri Olsa
  2024-01-17  9:44 ` [PATCH stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Jiri Olsa
  2024-01-17  9:44 ` [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25 Jiri Olsa
  0 siblings, 2 replies; 6+ messages in thread
From: Jiri Olsa @ 2024-01-17  9:44 UTC (permalink / raw)
  To: stable; +Cc: bpf, Daniel Borkmann, Martin Rodriguez Reboredo, Alan Maguire

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(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole
  2024-01-17  9:44 [PATCH stable 6.1 0/2] btf, scripts: Update pahole options Jiri Olsa
@ 2024-01-17  9:44 ` Jiri Olsa
  2024-01-17 11:02   ` Greg KH
  2024-01-17  9:44 ` [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25 Jiri Olsa
  1 sibling, 1 reply; 6+ messages in thread
From: Jiri Olsa @ 2024-01-17  9:44 UTC (permalink / raw)
  To: stable
  Cc: Eric Curtin, Neal Gompa, Miguel Ojeda, Arnaldo Carvalho de Melo,
	bpf, Daniel Borkmann, Martin Rodriguez Reboredo, Alan Maguire

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=49358dfe2aaae4e90b072332c3e324019826783f [1]
Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=8ee363790b7437283c53090a85a9fec2f0b0fbc4 [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}
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
  2024-01-17  9:44 [PATCH stable 6.1 0/2] btf, scripts: Update pahole options Jiri Olsa
  2024-01-17  9:44 ` [PATCH stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Jiri Olsa
@ 2024-01-17  9:44 ` Jiri Olsa
  2024-01-17 11:02   ` Greg KH
  1 sibling, 1 reply; 6+ messages in thread
From: Jiri Olsa @ 2024-01-17  9:44 UTC (permalink / raw)
  To: stable; +Cc: bpf, Daniel Borkmann, Martin Rodriguez Reboredo, Alan Maguire

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}
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole
  2024-01-17  9:44 ` [PATCH stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Jiri Olsa
@ 2024-01-17 11:02   ` Greg KH
  0 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2024-01-17 11:02 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: stable, Eric Curtin, Neal Gompa, Miguel Ojeda,
	Arnaldo Carvalho de Melo, bpf, Daniel Borkmann,
	Martin Rodriguez Reboredo, Alan Maguire

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=49358dfe2aaae4e90b072332c3e324019826783f [1]
> Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=8ee363790b7437283c53090a85a9fec2f0b0fbc4 [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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
  2024-01-17  9:44 ` [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25 Jiri Olsa
@ 2024-01-17 11:02   ` Greg KH
  2024-01-17 13:19     ` Jiri Olsa
  0 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2024-01-17 11:02 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: stable, bpf, Daniel Borkmann, Martin Rodriguez Reboredo,
	Alan Maguire

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
  2024-01-17 11:02   ` Greg KH
@ 2024-01-17 13:19     ` Jiri Olsa
  0 siblings, 0 replies; 6+ messages in thread
From: Jiri Olsa @ 2024-01-17 13:19 UTC (permalink / raw)
  To: Greg KH
  Cc: stable, bpf, Daniel Borkmann, Martin Rodriguez Reboredo,
	Alan Maguire

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-01-17 13:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-17  9:44 [PATCH stable 6.1 0/2] btf, scripts: Update pahole options Jiri Olsa
2024-01-17  9:44 ` [PATCH stable 6.1 1/2] btf, scripts: Exclude Rust CUs with pahole Jiri Olsa
2024-01-17 11:02   ` Greg KH
2024-01-17  9:44 ` [PATCH stable 6.1 2/2] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25 Jiri Olsa
2024-01-17 11:02   ` Greg KH
2024-01-17 13:19     ` Jiri Olsa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox