From: Alan Maguire <alan.maguire@oracle.com>
To: acme@kernel.org, yhs@fb.com, ast@kernel.org, olsajiri@gmail.com,
timo@incline.eu
Cc: daniel@iogearbox.net, andrii@kernel.org, songliubraving@fb.com,
john.fastabend@gmail.com, kpsingh@chromium.org, sdf@google.com,
haoluo@google.com, martin.lau@kernel.org, bpf@vger.kernel.org,
Alan Maguire <alan.maguire@oracle.com>
Subject: [PATCH dwarves 3/5] btf_encoder: child encoders should have a reference to parent encoder
Date: Tue, 24 Jan 2023 13:45:29 +0000 [thread overview]
Message-ID: <1674567931-26458-4-git-send-email-alan.maguire@oracle.com> (raw)
In-Reply-To: <1674567931-26458-1-git-send-email-alan.maguire@oracle.com>
The parent encoder will be used to share details of local functions
such that we can mark those which have optimized parameters in
any CU.
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
---
btf_encoder.c | 4 +++-
btf_encoder.h | 2 +-
pahole.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/btf_encoder.c b/btf_encoder.c
index 15a042c..449439f 100644
--- a/btf_encoder.c
+++ b/btf_encoder.c
@@ -49,6 +49,7 @@ struct var_info {
*/
struct btf_encoder {
struct list_head node;
+ struct btf_encoder *parent;
struct btf *btf;
struct cu *cu;
struct gobuffer percpu_secinfo;
@@ -1433,11 +1434,12 @@ 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 skip_encoding_vars, bool force, bool gen_floats, struct btf_encoder *parent, bool verbose)
{
struct btf_encoder *encoder = zalloc(sizeof(*encoder));
if (encoder) {
+ encoder->parent = parent;
encoder->raw_output = detached_filename != NULL;
encoder->filename = strdup(encoder->raw_output ? detached_filename : cu->filename);
if (encoder->filename == NULL)
diff --git a/btf_encoder.h b/btf_encoder.h
index a65120c..fd5a97f 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 skip_encoding_vars, bool force, bool gen_floats, struct btf_encoder *parent, bool verbose);
void btf_encoder__delete(struct btf_encoder *encoder);
int btf_encoder__encode(struct btf_encoder *encoder);
diff --git a/pahole.c b/pahole.c
index 6f4f87c..844d502 100644
--- a/pahole.c
+++ b/pahole.c
@@ -3037,7 +3037,7 @@ static enum load_steal_kind pahole_stealer(struct cu *cu,
* 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_encode_force, btf_gen_floats, NULL, global_verbose);
if (btf_encoder && thr_data) {
struct thread_data *thread = thr_data;
@@ -3069,6 +3069,7 @@ static enum load_steal_kind pahole_stealer(struct cu *cu,
skip_encoding_btf_vars,
btf_encode_force,
btf_gen_floats,
+ btf_encoder,
global_verbose);
thread->btf = btf_encoder__btf(thread->encoder);
}
--
1.8.3.1
next prev parent reply other threads:[~2023-01-24 13:49 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-24 13:45 [PATCH dwarves 0/5] dwarves: support encoding of optimized-out parameters, removal of inconsistent static functions Alan Maguire
2023-01-24 13:45 ` [PATCH dwarves 1/5] dwarves: help dwarf loader spot functions with optimized-out parameters Alan Maguire
2023-01-25 16:53 ` Jiri Olsa
2023-01-25 17:47 ` Eduard Zingerman
2023-01-25 18:28 ` Alan Maguire
2023-01-25 21:34 ` Eduard Zingerman
2023-01-25 22:52 ` Alan Maguire
2023-01-25 23:42 ` Eduard Zingerman
2023-01-26 0:20 ` Eduard Zingerman
2023-01-26 14:02 ` Alan Maguire
2023-01-26 15:02 ` Eduard Zingerman
2023-01-24 13:45 ` [PATCH dwarves 2/5] btf_encoder: refactor function addition into dedicated btf_encoder__add_func Alan Maguire
2023-01-24 13:45 ` Alan Maguire [this message]
2023-01-24 13:45 ` [PATCH dwarves 4/5] btf_encoder: represent "."-suffixed optimized functions (".isra.0") in BTF Alan Maguire
2023-01-25 17:54 ` Kui-Feng Lee
2023-01-25 18:56 ` Arnaldo Carvalho de Melo
2023-01-26 18:37 ` Kui-Feng Lee
2023-01-25 18:59 ` Alan Maguire
2023-01-26 17:43 ` Kui-Feng Lee
2023-01-24 13:45 ` [PATCH dwarves 5/5] btf_encoder: skip BTF encoding of static functions with inconsistent prototypes Alan Maguire
2023-01-25 13:39 ` Jiri Olsa
2023-01-25 14:18 ` Alan Maguire
2023-01-25 16:53 ` Jiri Olsa
2023-01-26 14:12 ` Alan Maguire
2023-01-24 15:14 ` [PATCH dwarves 0/5] dwarves: support encoding of optimized-out parameters, removal of inconsistent static functions Jiri Olsa
2023-01-24 16:11 ` Alan Maguire
2023-01-25 13:59 ` Jiri Olsa
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=1674567931-26458-4-git-send-email-alan.maguire@oracle.com \
--to=alan.maguire@oracle.com \
--cc=acme@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=kpsingh@chromium.org \
--cc=martin.lau@kernel.org \
--cc=olsajiri@gmail.com \
--cc=sdf@google.com \
--cc=songliubraving@fb.com \
--cc=timo@incline.eu \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox