All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	Andrii Nakryiko <andriin@fb.com>,
	dwarves@vger.kernel.org, bpf@vger.kernel.org,
	Alexei Starovoitov <ast@fb.com>, Yonghong Song <yhs@fb.com>
Subject: encoding BTF on glibc was: Re: [PATCH pahole 0/3] fix handling of bitfields in btf_loader
Date: Mon, 25 Feb 2019 17:08:22 -0300	[thread overview]
Message-ID: <20190225200822.GB13100@kernel.org> (raw)
In-Reply-To: <CAEf4BzZjnvw9yDKst1xU4PkkcUuPh2Q2Oep=B1jhWSWoO6cgWg@mail.gmail.com>

Em Mon, Feb 25, 2019 at 11:42:29AM -0800, Andrii Nakryiko escreveu:
> On Mon, Feb 25, 2019 at 11:00 AM Arnaldo Carvalho de Melo> <arnaldo.melo@gmail.com> wrote:

> > Em Mon, Feb 25, 2019 at 01:02:39PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > So yeah, the BTF encoder/decoder is working just fine, the problem is in
> > > pahole's DWARF code, lemme see...
> >
> > Please try the patch below, for me btfdiff continues to show no diff for
> > all types in my vmlinux and now it also produces the same output for
> > when the first element of a bitfield has its bit_size equal to its
> > byte_size * 8:
> 
> Yes, this fixes all the issues I've seen. btfdiff output is now empty
> for my kernel image. Thanks for quick fix!
> 
> Reviewed-by: Andrii Nakryiko <andriin@fb.com>

Thanks, just for some extra testing I tried encoding BTF for glibc 2.28:

[acme@quaco pahole]$ pahole -JV libc-2.28.so.debug
<BIG snip>
[386033] STRUCT dl_scope_free_list kind_flag=0 size=408 vlen=2
	count type_id=385556 bits_offset=0
	list type_id=386034 bits_offset=64
[386034] ARRAY (anon) type_id=385511 index_type_id=13 nr_elems=50
[386035] STRUCT rtld_global kind_flag=0 size=3992 vlen=31
	_dl_ns type_id=386036 bits_offset=0
	_dl_nns type_id=385556 bits_offset=18432
	_dl_load_lock type_id=385917 bits_offset=18496
	_dl_load_write_lock type_id=385917 bits_offset=18816
	_dl_load_adds type_id=385567 bits_offset=19136
	_dl_initfirst type_id=385922 bits_offset=19200
	_dl_cpuclock_offset type_id=385662 bits_offset=19264
	_dl_profile_map type_id=385922 bits_offset=19328
	_dl_num_relocations type_id=385496 bits_offset=19392
	_dl_num_cache_relocations type_id=385496 bits_offset=19456
	_dl_all_dirs type_id=385926 bits_offset=19520
	_dl_rtld_map type_id=385919 bits_offset=19584
	audit_data type_id=386037 bits_offset=28736
	_dl_rtld_lock_recursive type_id=385680 bits_offset=30784
	_dl_rtld_unlock_recursive type_id=385680 bits_offset=30848
	_dl_x86_feature_1 type_id=385571 bits_offset=30912
	_dl_x86_legacy_bitmap type_id=385653 bits_offset=30976
	_dl_make_stack_executable_hook type_id=386039 bits_offset=31104
	_dl_stack_flags type_id=385525 bits_offset=31168
	_dl_tls_dtv_gaps type_id=385825 bits_offset=31200
	_dl_tls_max_dtv_idx type_id=385556 bits_offset=31232
	_dl_tls_dtv_slotinfo_list type_id=386031 bits_offset=31296
	_dl_tls_static_nelem type_id=385556 bits_offset=31360
	_dl_tls_static_size type_id=385556 bits_offset=31424
	_dl_tls_static_used type_id=385556 bits_offset=31488
	_dl_tls_static_align type_id=385556 bits_offset=31552
	_dl_initial_dtv type_id=385511 bits_offset=31616
	_dl_tls_generation type_id=385556 bits_offset=31680
	_dl_init_static_tls type_id=386041 bits_offset=31744
	_dl_wait_lookup_done type_id=385665 bits_offset=31808
	_dl_scope_free_list type_id=386042 bits_offset=31872
[386036] ARRAY (anon) type_id=386028 index_type_id=13 nr_elems=16
[386037] ARRAY (anon) type_id=385938 index_type_id=13 nr_elems=16
[386038] FUNC_PROTO (anon) return=385501 args=(385970 (anon))
[386039] PTR (anon) type_id=386038
[386040] FUNC_PROTO (anon) return=0 args=(385922 (anon))
[386041] PTR (anon) type_id=386040
[386042] PTR (anon) type_id=386033
[386043] STRUCT rtld_global_ro kind_flag=0 size=432 vlen=40
	_dl_debug_mask type_id=385501 bits_offset=0
	_dl_osversion type_id=385495 bits_offset=32
	_dl_platform type_id=385595 bits_offset=64
	_dl_platformlen type_id=385556 bits_offset=128
	_dl_pagesize type_id=385556 bits_offset=192
	_dl_inhibit_cache type_id=385501 bits_offset=256
	_dl_initial_searchlist type_id=385918 bits_offset=320
	_dl_clktck type_id=385501 bits_offset=448
	_dl_verbose type_id=385501 bits_offset=480
	_dl_debug_fd type_id=385501 bits_offset=512
	_dl_lazy type_id=385501 bits_offset=544
	_dl_bind_not type_id=385501 bits_offset=576
	_dl_dynamic_weak type_id=385501 bits_offset=608
	_dl_fpu_control type_id=385977 bits_offset=640
	_dl_correct_cache_id type_id=385501 bits_offset=672
	_dl_hwcap type_id=385520 bits_offset=704
	_dl_auxv type_id=386045 bits_offset=768
	_dl_x86_cpu_features type_id=385599 bits_offset=832
	_dl_x86_hwcap_flags type_id=386047 bits_offset=1664
	_dl_x86_platforms type_id=386049 bits_offset=1880
	_dl_inhibit_rpath type_id=385595 bits_offset=2176
	_dl_origin_path type_id=385595 bits_offset=2240
	_dl_use_load_bias type_id=385529 bits_offset=2304
	_dl_profile type_id=385595 bits_offset=2368
	_dl_profile_output type_id=385595 bits_offset=2432
	_dl_trace_prelink type_id=385595 bits_offset=2496
	_dl_trace_prelink_map type_id=385922 bits_offset=2560
	_dl_init_all_dirs type_id=385926 bits_offset=2624
	_dl_sysinfo_dso type_id=386050 bits_offset=2688
	_dl_sysinfo_map type_id=385922 bits_offset=2752
	_dl_hwcap2 type_id=385520 bits_offset=2816
	_dl_debug_printf type_id=386052 bits_offset=2880
	_dl_mcount type_id=386054 bits_offset=2944
	_dl_lookup_symbol_x type_id=386058 bits_offset=3008
	_dl_open type_id=386060 bits_offset=3072
	_dl_close type_id=385680 bits_offset=3136
	_dl_tls_get_addr_soft type_id=386062 bits_offset=3200
	_dl_discover_osversion type_id=386064 bits_offset=3264
	_dl_audit type_id=386023 bits_offset=3328
	_dl_naudit type_id=385495 bits_offset=3392
[386044] CONST (anon) type_id=386043
[386045] PTR (anon) type_id=385552
[386046] ARRAY (anon) type_id=385515 index_type_id=13 nr_elems=27
[386047] CONST (anon) type_id=386046
[386048] ARRAY (anon) type_id=385515 index_type_id=13 nr_elems=36
[386049] CONST (anon) type_id=386048
[386050] PTR (anon) type_id=385538
[386051] FUNC_PROTO (anon) return=0 args=(385595 (anon), vararg)
[386052] PTR (anon) type_id=386051
[386053] FUNC_PROTO (anon) return=0 args=(385529 (anon), 385529 (anon))
[386054] PTR (anon) type_id=386053
[386055] FUNC_PROTO (anon) return=385978 args=(385595 (anon), 385922 (anon), 386056 (anon), 385950 (anon), 386057 (anon), 385501 (anon), 385501 (anon), 385922 (anon))
[386056] PTR (anon) type_id=385937
[386057] PTR (anon) type_id=385943
[386058] PTR (anon) type_id=386055
[386059] FUNC_PROTO (anon) return=385511 args=(385595 (anon), 385501 (anon), 385640 (anon), 385602 (anon), 385501 (anon), 385954 (anon), 385954 (anon))
[386060] PTR (anon) type_id=386059
[386061] FUNC_PROTO (anon) return=385511 args=(385922 (anon))
[386062] PTR (anon) type_id=386061
[386063] FUNC_PROTO (anon) return=385501 args=(void)
[386064] PTR (anon) type_id=386063
[386065] ARRAY (anon) type_id=386069 index_type_id=13 nr_elems=28
[386066] CONST (anon) type_id=386065
[386067] INT long unsigned int size=8 bit_offset=0 nr_bits=64 encoding=(none)
[386068] INT char size=1 bit_offset=0 nr_bits=8 encoding=(none)
[386069] CONST (anon) type_id=386068
[386070] TYPEDEF ui32 type_id=386072
[386071] CONST (anon) type_id=386070
[386072] INT unsigned int size=4 bit_offset=0 nr_bits=32 encoding=(none)
[386073] ARRAY (anon) type_id=386071 index_type_id=13 nr_elems=1
[386074] CONST (anon) type_id=386073
[386075] INT long unsigned int size=8 bit_offset=0 nr_bits=64 encoding=(none)
Cannot open libc-2.28.so.debug
Failed to encode BTF
[acme@quaco pahole]$

  reply	other threads:[~2019-02-25 20:08 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-20 20:57 [PATCH pahole 0/3] fix handling of bitfields in btf_loader Andrii Nakryiko
2019-02-20 20:57 ` [PATCH pahole 1/3] btfdiff: support specifying custom pahole location Andrii Nakryiko
2019-02-20 20:57 ` [PATCH pahole 2/3] pahole: complete list of base type names Andrii Nakryiko
2019-02-20 20:57 ` [PATCH pahole 3/3] btf_loader: fix bitfield fixup code Andrii Nakryiko
2019-02-22 22:02 ` [PATCH pahole 0/3] fix handling of bitfields in btf_loader Arnaldo Carvalho de Melo
2019-02-22 23:23   ` Andrii Nakryiko
2019-02-25 16:02     ` Arnaldo Carvalho de Melo
2019-02-25 18:59       ` Arnaldo Carvalho de Melo
2019-02-25 19:42         ` Andrii Nakryiko
2019-02-25 20:08           ` Arnaldo Carvalho de Melo [this message]
2019-02-25 20:51             ` encoding BTF on glibc was: " Andrii Nakryiko
2019-02-25 21:36               ` Andrii Nakryiko
2019-02-26  0:34                 ` Andrii Nakryiko
2019-02-26  5:37                 ` Yonghong Song
2019-02-26  5:44                   ` Alexei Starovoitov
2019-02-26  5:45                   ` Andrii Nakryiko
2019-02-26  6:03                     ` Yonghong Song
2019-02-26 17:22                       ` Andrii Nakryiko
2019-02-26 17:24                         ` Yonghong Song
2019-02-26 17:34                           ` Andrii Nakryiko
2019-02-26 13:11                 ` Arnaldo Carvalho de Melo
2019-02-26 17:14                   ` Andrii Nakryiko
2019-02-26 17:45                     ` Arnaldo Carvalho de Melo

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=20190225200822.GB13100@kernel.org \
    --to=arnaldo.melo@gmail.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=andriin@fb.com \
    --cc=ast@fb.com \
    --cc=bpf@vger.kernel.org \
    --cc=dwarves@vger.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.