On Wed, Feb 9, 2022 at 2:27 PM Mauricio Vásquez <mauricio@xxxxxxxxxx> wrote: > > BTFGen needs to run the core relocation logic in order to understand > what are the types involved in a given relocation. > > Currently bpf_core_apply_relo() calculates and **applies** a relocation > to an instruction. Having both operations in the same function makes it > difficult to only calculate the relocation without patching the > instruction. This commit splits that logic in two different phases: (1) > calculate the relocation and (2) patch the instruction. > > For the first phase bpf_core_apply_relo() is renamed to > bpf_core_calc_relo_insn() who is now only on charge of calculating the > relocation, the second phase uses the already existing > bpf_core_patch_insn(). bpf_object__relocate_core() uses both of them and > the BTFGen will use only bpf_core_calc_relo_insn(). > > Signed-off-by: Mauricio Vásquez <mauricio@xxxxxxxxxx> > Signed-off-by: Rafael David Tinoco <rafael.tinoco@xxxxxxxxxxx> > Signed-off-by: Lorenzo Fontana <lorenzo.fontana@xxxxxxxxxx> > Signed-off-by: Leonardo Di Donato <leonardo.didonato@xxxxxxxxxx> > --- LGTM. Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > kernel/bpf/btf.c | 13 +++++-- > tools/lib/bpf/libbpf.c | 71 ++++++++++++++++++++--------------- > tools/lib/bpf/relo_core.c | 79 ++++++++++++--------------------------- > tools/lib/bpf/relo_core.h | 42 ++++++++++++++++++--- > 4 files changed, 109 insertions(+), 96 deletions(-) > [...]