All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <olsajiri@gmail.com>
To: Alan Maguire <alan.maguire@oracle.com>
Cc: acme@kernel.org, andrii.nakryiko@gmail.com, ast@kernel.org,
	daniel@iogearbox.net, eddyz87@gmail.com, martin.lau@linux.dev,
	song@kernel.org, yhs@fb.com, john.fastabend@gmail.com,
	kpsingh@kernel.org, sdf@google.com, haoluo@google.com,
	mykolal@fb.com, bpf@vger.kernel.org
Subject: Re: [RFC dwarves 1/4] btf_encoder, pahole: move btf encoding options into conf_load
Date: Thu, 12 Oct 2023 14:54:10 +0200	[thread overview]
Message-ID: <ZSfscvIOkikSHc7w@krava> (raw)
In-Reply-To: <20231011091732.93254-2-alan.maguire@oracle.com>

On Wed, Oct 11, 2023 at 10:17:29AM +0100, Alan Maguire wrote:
> ...rather than passing them to btf_encoder__new(); this tidies
> up the encoder API and also allows us to use generalized methods
> to translate from a BTF feature (forthcoming) to a conf_load
> parameter.
> 
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>

nice cleanup

Acked-by: Jiri Olsa <jolsa@kernel.org>

jirka

> ---
>  btf_encoder.c |  8 ++++----
>  btf_encoder.h |  2 +-
>  dwarves.h     |  3 +++
>  pahole.c      | 21 ++++++++-------------
>  4 files changed, 16 insertions(+), 18 deletions(-)
> 
> diff --git a/btf_encoder.c b/btf_encoder.c
> index 65f6e71..fd04008 100644
> --- a/btf_encoder.c
> +++ b/btf_encoder.c
> @@ -1625,7 +1625,7 @@ out:
>  	return err;
>  }
>  
> -struct btf_encoder *btf_encoder__new(struct cu *cu, const char *detached_filename, struct btf *base_btf, bool skip_encoding_vars, bool force, bool gen_floats, bool verbose)
> +struct btf_encoder *btf_encoder__new(struct cu *cu, const char *detached_filename, struct btf *base_btf, bool verbose, struct conf_load *conf_load)
>  {
>  	struct btf_encoder *encoder = zalloc(sizeof(*encoder));
>  
> @@ -1639,9 +1639,9 @@ struct btf_encoder *btf_encoder__new(struct cu *cu, const char *detached_filenam
>  		if (encoder->btf == NULL)
>  			goto out_delete;
>  
> -		encoder->force		 = force;
> -		encoder->gen_floats	 = gen_floats;
> -		encoder->skip_encoding_vars = skip_encoding_vars;
> +		encoder->force		 = conf_load->btf_encode_force;
> +		encoder->gen_floats	 = conf_load->btf_gen_floats;
> +		encoder->skip_encoding_vars = conf_load->skip_encoding_btf_vars;
>  		encoder->verbose	 = verbose;
>  		encoder->has_index_type  = false;
>  		encoder->need_index_type = false;
> diff --git a/btf_encoder.h b/btf_encoder.h
> index 34516bb..f54c95a 100644
> --- a/btf_encoder.h
> +++ b/btf_encoder.h
> @@ -16,7 +16,7 @@ struct btf;
>  struct cu;
>  struct list_head;
>  
> -struct btf_encoder *btf_encoder__new(struct cu *cu, const char *detached_filename, struct btf *base_btf, bool skip_encoding_vars, bool force, bool gen_floats, bool verbose);
> +struct btf_encoder *btf_encoder__new(struct cu *cu, const char *detached_filename, struct btf *base_btf, bool verbose, struct conf_load *conf_load);
>  void btf_encoder__delete(struct btf_encoder *encoder);
>  
>  int btf_encoder__encode(struct btf_encoder *encoder);
> diff --git a/dwarves.h b/dwarves.h
> index eb1a6df..db68161 100644
> --- a/dwarves.h
> +++ b/dwarves.h
> @@ -68,6 +68,9 @@ struct conf_load {
>  	bool			skip_encoding_btf_enum64;
>  	bool			btf_gen_optimized;
>  	bool			skip_encoding_btf_inconsistent_proto;
> +	bool			skip_encoding_btf_vars;
> +	bool			btf_gen_floats;
> +	bool			btf_encode_force;
>  	uint8_t			hashtable_bits;
>  	uint8_t			max_hashtable_bits;
>  	uint16_t		kabi_prefix_len;
> diff --git a/pahole.c b/pahole.c
> index e843999..7a41dc3 100644
> --- a/pahole.c
> +++ b/pahole.c
> @@ -32,13 +32,10 @@
>  static struct btf_encoder *btf_encoder;
>  static char *detached_btf_filename;
>  static bool btf_encode;
> -static bool btf_gen_floats;
>  static bool ctf_encode;
>  static bool sort_output;
>  static bool need_resort;
>  static bool first_obj_only;
> -static bool skip_encoding_btf_vars;
> -static bool btf_encode_force;
>  static const char *base_btf_file;
>  
>  static const char *prettify_input_filename;
> @@ -1786,9 +1783,9 @@ static error_t pahole__options_parser(int key, char *arg,
>  	case ARGP_header_type:
>  		conf.header_type = arg;			break;
>  	case ARGP_skip_encoding_btf_vars:
> -		skip_encoding_btf_vars = true;		break;
> +		conf_load.skip_encoding_btf_vars = true;	break;
>  	case ARGP_btf_encode_force:
> -		btf_encode_force = true;		break;
> +		conf_load.btf_encode_force = true;	break;
>  	case ARGP_btf_base:
>  		base_btf_file = arg;			break;
>  	case ARGP_kabi_prefix:
> @@ -1797,9 +1794,9 @@ static error_t pahole__options_parser(int key, char *arg,
>  	case ARGP_numeric_version:
>  		print_numeric_version = true;		break;
>  	case ARGP_btf_gen_floats:
> -		btf_gen_floats = true;			break;
> +		conf_load.btf_gen_floats = true;	break;
>  	case ARGP_btf_gen_all:
> -		btf_gen_floats = true;			break;
> +		conf_load.btf_gen_floats = true;	break;
>  	case ARGP_with_flexible_array:
>  		show_with_flexible_array = true;	break;
>  	case ARGP_prettify_input_filename:
> @@ -3063,8 +3060,8 @@ static enum load_steal_kind pahole_stealer(struct cu *cu,
>  			 * And, it is used by the thread
>  			 * create it.
>  			 */
> -			btf_encoder = btf_encoder__new(cu, detached_btf_filename, conf_load->base_btf, skip_encoding_btf_vars,
> -						       btf_encode_force, btf_gen_floats, global_verbose);
> +			btf_encoder = btf_encoder__new(cu, detached_btf_filename, conf_load->base_btf,
> +						       global_verbose, conf_load);
>  			if (btf_encoder && thr_data) {
>  				struct thread_data *thread = thr_data;
>  
> @@ -3093,10 +3090,8 @@ static enum load_steal_kind pahole_stealer(struct cu *cu,
>  				thread->encoder =
>  					btf_encoder__new(cu, detached_btf_filename,
>  							 NULL,
> -							 skip_encoding_btf_vars,
> -							 btf_encode_force,
> -							 btf_gen_floats,
> -							 global_verbose);
> +							 global_verbose,
> +							 conf_load);
>  				thread->btf = btf_encoder__btf(thread->encoder);
>  			}
>  			encoder = thread->encoder;
> -- 
> 2.31.1
> 

  reply	other threads:[~2023-10-12 12:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-11  9:17 [RFC dwarves 0/4] pahole, btf_encoder: support --btf_features Alan Maguire
2023-10-11  9:17 ` [RFC dwarves 1/4] btf_encoder, pahole: move btf encoding options into conf_load Alan Maguire
2023-10-12 12:54   ` Jiri Olsa [this message]
2023-10-11  9:17 ` [RFC dwarves 2/4] dwarves: move ARRAY_SIZE() to dwarves.h Alan Maguire
2023-10-11  9:17 ` [RFC dwarves 3/4] pahole: add --btf_features=feature1[,feature2...] support Alan Maguire
2023-10-11 16:28   ` Eduard Zingerman
2023-10-11 16:41     ` Alan Maguire
2023-10-11 19:08       ` Eduard Zingerman
2023-10-11 22:05         ` Alan Maguire
2023-10-11 22:14           ` Eduard Zingerman
2023-10-12 12:35             ` Alan Maguire
2023-10-13 14:17               ` Arnaldo Carvalho de Melo
2023-10-13 14:43                 ` Alan Maguire
2023-10-12 12:53   ` Jiri Olsa
2023-10-12 13:48     ` Alan Maguire
2023-10-12 21:19       ` Jiri Olsa
2023-10-13  0:21   ` Andrii Nakryiko
2023-10-13 11:54     ` Alan Maguire
2023-10-13 18:39       ` Andrii Nakryiko
2023-10-11  9:17 ` [RFC dwarves 4/4] pahole: add --supported_btf_features to display feature support Alan Maguire
2023-10-13  0:14 ` [RFC dwarves 0/4] pahole, btf_encoder: support --btf_features Andrii Nakryiko

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=ZSfscvIOkikSHc7w@krava \
    --to=olsajiri@gmail.com \
    --cc=acme@kernel.org \
    --cc=alan.maguire@oracle.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=eddyz87@gmail.com \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=kpsingh@kernel.org \
    --cc=martin.lau@linux.dev \
    --cc=mykolal@fb.com \
    --cc=sdf@google.com \
    --cc=song@kernel.org \
    --cc=yhs@fb.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.