diff mbox series

[dwarves] btf: Add --btf_gen_all flag

Message ID 20210312000808.175262-1-iii@linux.ibm.com (mailing list archive)
State Not Applicable
Delegated to: BPF
Headers show
Series [dwarves] btf: Add --btf_gen_all flag | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Ilya Leoshkevich March 12, 2021, 12:08 a.m. UTC
By default, pahole makes use only of BTF features introduced with
kernel v5.2. Features that are added later need to be turned on with
explicit feature flags, such as --btf_gen_floats. According to [1],
this will hinder the people who generate BTF for kernels externally
(e.g. for old kernels to support BPF CO-RE).

Introduce --btf_gen_all that allows using all BTF features supported
by pahole.

[1] https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@mail.gmail.com/

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 man-pages/pahole.1 | 4 ++++
 pahole.c           | 8 ++++++++
 2 files changed, 12 insertions(+)

Comments

Arnaldo Carvalho de Melo March 12, 2021, 1:39 p.m. UTC | #1
Em Fri, Mar 12, 2021 at 01:08:08AM +0100, Ilya Leoshkevich escreveu:
> By default, pahole makes use only of BTF features introduced with
> kernel v5.2. Features that are added later need to be turned on with
> explicit feature flags, such as --btf_gen_floats. According to [1],
> this will hinder the people who generate BTF for kernels externally
> (e.g. for old kernels to support BPF CO-RE).
> 
> Introduce --btf_gen_all that allows using all BTF features supported
> by pahole.
> 
> [1] https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@mail.gmail.com/

Applied locally, testing ongoing.

Also added this:

Suggested-by: Andrii Nakryiko <andrii@kernel.org>

- Arnaldo
 
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> ---
>  man-pages/pahole.1 | 4 ++++
>  pahole.c           | 8 ++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/man-pages/pahole.1 b/man-pages/pahole.1
> index e292b2c..cbbefbf 100644
> --- a/man-pages/pahole.1
> +++ b/man-pages/pahole.1
> @@ -204,6 +204,10 @@ to "/sys/kernel/btf/vmlinux".
>  Allow producing BTF_KIND_FLOAT entries in systems where the vmlinux DWARF
>  information has float types.
>  
> +.TP
> +.B \-\-btf_gen_all
> +Allow using all the BTF features supported by pahole.
> +
>  .TP
>  .B \-l, \-\-show_first_biggest_size_base_type_member
>  Show first biggest size base_type member.
> diff --git a/pahole.c b/pahole.c
> index c8d38f5..df6aa83 100644
> --- a/pahole.c
> +++ b/pahole.c
> @@ -826,6 +826,7 @@ ARGP_PROGRAM_VERSION_HOOK_DEF = dwarves_print_version;
>  #define ARGP_numeric_version       320
>  #define ARGP_btf_base		   321
>  #define ARGP_btf_gen_floats	   322
> +#define ARGP_btf_gen_all	   323
>  
>  static const struct argp_option pahole__options[] = {
>  	{
> @@ -1125,6 +1126,11 @@ static const struct argp_option pahole__options[] = {
>  		.key  = ARGP_btf_gen_floats,
>  		.doc  = "Allow producing BTF_KIND_FLOAT entries."
>  	},
> +	{
> +		.name = "btf_gen_all",
> +		.key  = ARGP_btf_gen_all,
> +		.doc  = "Allow using all the BTF features supported by pahole."
> +	},
>  	{
>  		.name = "structs",
>  		.key  = ARGP_just_structs,
> @@ -1262,6 +1268,8 @@ static error_t pahole__options_parser(int key, char *arg,
>  		print_numeric_version = true;		break;
>  	case ARGP_btf_gen_floats:
>  		btf_gen_floats = true;			break;
> +	case ARGP_btf_gen_all:
> +		btf_gen_floats = true;			break;
>  	default:
>  		return ARGP_ERR_UNKNOWN;
>  	}
> -- 
> 2.29.2
>
Ilya Leoshkevich March 23, 2021, 1:36 p.m. UTC | #2
On Fri, 2021-03-12 at 10:39 -0300, Arnaldo Carvalho de Melo wrote:
> Em Fri, Mar 12, 2021 at 01:08:08AM +0100, Ilya Leoshkevich escreveu:
> > By default, pahole makes use only of BTF features introduced with
> > kernel v5.2. Features that are added later need to be turned on with
> > explicit feature flags, such as --btf_gen_floats. According to [1],
> > this will hinder the people who generate BTF for kernels externally
> > (e.g. for old kernels to support BPF CO-RE).
> > 
> > Introduce --btf_gen_all that allows using all BTF features supported
> > by pahole.
> > 
> > [1] 
> > https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@mail.gmail.com/
> 
> Applied locally, testing ongoing.
> 
> Also added this:
> 
> Suggested-by: Andrii Nakryiko <andrii@kernel.org>
> 
> - Arnaldo

[...]

Hi Arnaldo,

I'd like to ping this patch (and
https://lore.kernel.org/dwarves/20210310201550.170599-1-iii@linux.ibm.com/
too).

Best regards,
Ilya
>
Arnaldo Carvalho de Melo March 23, 2021, 6:07 p.m. UTC | #3
Em Tue, Mar 23, 2021 at 02:36:48PM +0100, Ilya Leoshkevich escreveu:
> On Fri, 2021-03-12 at 10:39 -0300, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Mar 12, 2021 at 01:08:08AM +0100, Ilya Leoshkevich escreveu:
> > > By default, pahole makes use only of BTF features introduced with
> > > kernel v5.2. Features that are added later need to be turned on with
> > > explicit feature flags, such as --btf_gen_floats. According to [1],
> > > this will hinder the people who generate BTF for kernels externally
> > > (e.g. for old kernels to support BPF CO-RE).
> > > 
> > > Introduce --btf_gen_all that allows using all BTF features supported
> > > by pahole.
> > > 
> > > [1] 
> > > https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@mail.gmail.com/
> > 
> > Applied locally, testing ongoing.
> > 
> > Also added this:
> > 
> > Suggested-by: Andrii Nakryiko <andrii@kernel.org>
> > 
> > - Arnaldo
> 
> [...]
> 
> Hi Arnaldo,
> 
> I'd like to ping this patch (and
> https://lore.kernel.org/dwarves/20210310201550.170599-1-iii@linux.ibm.com/
> too).

So I finally finished testing, pushing out now.

- Arnaldo
Arnaldo Carvalho de Melo March 23, 2021, 6:22 p.m. UTC | #4
Em Tue, Mar 23, 2021 at 03:07:23PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Mar 23, 2021 at 02:36:48PM +0100, Ilya Leoshkevich escreveu:
> > On Fri, 2021-03-12 at 10:39 -0300, Arnaldo Carvalho de Melo wrote:
> > > Em Fri, Mar 12, 2021 at 01:08:08AM +0100, Ilya Leoshkevich escreveu:
> > > > By default, pahole makes use only of BTF features introduced with
> > > > kernel v5.2. Features that are added later need to be turned on with
> > > > explicit feature flags, such as --btf_gen_floats. According to [1],
> > > > this will hinder the people who generate BTF for kernels externally
> > > > (e.g. for old kernels to support BPF CO-RE).
> > > > 
> > > > Introduce --btf_gen_all that allows using all BTF features supported
> > > > by pahole.
> > > > 
> > > > [1] 
> > > > https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@mail.gmail.com/
> > > 
> > > Applied locally, testing ongoing.
> > > 
> > > Also added this:
> > > 
> > > Suggested-by: Andrii Nakryiko <andrii@kernel.org>
> > > 
> > > - Arnaldo
> > 
> > [...]
> > 
> > Hi Arnaldo,
> > 
> > I'd like to ping this patch (and
> > https://lore.kernel.org/dwarves/20210310201550.170599-1-iii@linux.ibm.com/
> > too).
> 
> So I finally finished testing, pushing out now.

Please check what is in
https://git.kernel.org/pub/scm/devel/pahole/pahole.git/, I'm having some
problems with 2FA on github, will fix soon.

- Arnaldo
Ilya Leoshkevich March 23, 2021, 8:54 p.m. UTC | #5
On Tue, 2021-03-23 at 15:22 -0300, Arnaldo Carvalho de Melo wrote:
> Em Tue, Mar 23, 2021 at 03:07:23PM -0300, Arnaldo Carvalho de Melo
> escreveu:
> > Em Tue, Mar 23, 2021 at 02:36:48PM +0100, Ilya Leoshkevich
> > escreveu:
> > > On Fri, 2021-03-12 at 10:39 -0300, Arnaldo Carvalho de Melo
> > > wrote:
> > > > Em Fri, Mar 12, 2021 at 01:08:08AM +0100, Ilya Leoshkevich
> > > > escreveu:
> > > > > By default, pahole makes use only of BTF features introduced
> > > > > with
> > > > > kernel v5.2. Features that are added later need to be turned
> > > > > on with
> > > > > explicit feature flags, such as --btf_gen_floats. According
> > > > > to [1],
> > > > > this will hinder the people who generate BTF for kernels
> > > > > externally
> > > > > (e.g. for old kernels to support BPF CO-RE).
> > > > > 
> > > > > Introduce --btf_gen_all that allows using all BTF features
> > > > > supported
> > > > > by pahole.
> > > > > 
> > > > > [1] 
> > > > > https://lore.kernel.org/dwarves/CAEf4Bzbyugfb2RkBkRuxNGKwSk40Tbq4zAvhQT8W=fVMYWuaxA@mail.gmail.com/
> > > > 
> > > > Applied locally, testing ongoing.
> > > > 
> > > > Also added this:
> > > > 
> > > > Suggested-by: Andrii Nakryiko <andrii@kernel.org>
> > > > 
> > > > - Arnaldo
> > > 
> > > [...]
> > > 
> > > Hi Arnaldo,
> > > 
> > > I'd like to ping this patch (and
> > > https://lore.kernel.org/dwarves/20210310201550.170599-1-iii@linux.ibm.com/
> > > too).
> > 
> > So I finally finished testing, pushing out now.
> 
> Please check what is in
> https://git.kernel.org/pub/scm/devel/pahole/pahole.git/, I'm having
> some
> problems with 2FA on github, will fix soon.
> 
> - Arnaldo

That looks good, thanks!

s390 seems to run fine again with the latest bpf-next / llvm / pahole.
Now I can finally give adding s390 to the libbpf CI another try :-)
diff mbox series

Patch

diff --git a/man-pages/pahole.1 b/man-pages/pahole.1
index e292b2c..cbbefbf 100644
--- a/man-pages/pahole.1
+++ b/man-pages/pahole.1
@@ -204,6 +204,10 @@  to "/sys/kernel/btf/vmlinux".
 Allow producing BTF_KIND_FLOAT entries in systems where the vmlinux DWARF
 information has float types.
 
+.TP
+.B \-\-btf_gen_all
+Allow using all the BTF features supported by pahole.
+
 .TP
 .B \-l, \-\-show_first_biggest_size_base_type_member
 Show first biggest size base_type member.
diff --git a/pahole.c b/pahole.c
index c8d38f5..df6aa83 100644
--- a/pahole.c
+++ b/pahole.c
@@ -826,6 +826,7 @@  ARGP_PROGRAM_VERSION_HOOK_DEF = dwarves_print_version;
 #define ARGP_numeric_version       320
 #define ARGP_btf_base		   321
 #define ARGP_btf_gen_floats	   322
+#define ARGP_btf_gen_all	   323
 
 static const struct argp_option pahole__options[] = {
 	{
@@ -1125,6 +1126,11 @@  static const struct argp_option pahole__options[] = {
 		.key  = ARGP_btf_gen_floats,
 		.doc  = "Allow producing BTF_KIND_FLOAT entries."
 	},
+	{
+		.name = "btf_gen_all",
+		.key  = ARGP_btf_gen_all,
+		.doc  = "Allow using all the BTF features supported by pahole."
+	},
 	{
 		.name = "structs",
 		.key  = ARGP_just_structs,
@@ -1262,6 +1268,8 @@  static error_t pahole__options_parser(int key, char *arg,
 		print_numeric_version = true;		break;
 	case ARGP_btf_gen_floats:
 		btf_gen_floats = true;			break;
+	case ARGP_btf_gen_all:
+		btf_gen_floats = true;			break;
 	default:
 		return ARGP_ERR_UNKNOWN;
 	}