Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries)

From: Arnaldo Carvalho de Melo
Date: Wed Aug 24 2022 - 10:37:40 EST


Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu:
> The Nvidia driver breaks

How? What are the messages?

Here is a test on an Archlinux container:

[perfbuilder@758097c04011 dwarves-1.24]$ pahole --version
v1.24
[perfbuilder@758097c04011 dwarves-1.24]$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
VERSION_ID=TEMPLATE_VERSION_ID
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/";
DOCUMENTATION_URL="https://wiki.archlinux.org/";
SUPPORT_URL="https://bbs.archlinux.org/";
BUG_REPORT_URL="https://bugs.archlinux.org/";
LOGO=archlinux-logo
[perfbuilder@758097c04011 dwarves-1.24]$ pahole list_head
struct list_head {
struct list_head * next; /* 0 8 */
struct list_head * prev; /* 8 8 */

/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
[perfbuilder@758097c04011 dwarves-1.24]$ pahole --sizes | sort -k2 -nr | head
rcu_state 300608 7
cmp_data 290904 1
dec_data 274520 1
cpu_entry_area 241664 0
kvm 190016 6
pglist_data 173440 6
ZSTD_DCtx_s 161480 6
saved_cmdlines_buffer 131104 1
debug_store_buffers 131072 0
hid_parser 110848 1
[perfbuilder@758097c04011 dwarves-1.24]$

> On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@xxxxxxxxx> wrote:
> > Em Wed, Aug 24, 2022 at 03:23:29PM +0200, Luna Jernberg escreveu:
> >> This package breaks on Arch Linux at the moment and if you are using Arch
> >> its recommended that you downgrade to 1.23
> >
> > Breaks in what sense? Can you please provide details?
> >
> > - Arnaldo
> >
> >> On Tue, Aug 23, 2022 at 1:59 AM Arnaldo Carvalho de Melo
> >> <acme@xxxxxxxxxx>
> >> wrote:
> >>
> >> > Hi,
> >> >
> >> > The v1.24 release of pahole and its friends is out, with faster
> >> > BTF generation by parallelizing the encoding part in addition to the
> >> > previoulsy parallelized DWARF loading, support for 64-bit BTF
> >> > enumeration
> >> > entries, signed BTF encoding of 'char', exclude/select DWARF loading
> >> > based on the language that generated the objects, etc.
> >> >
> >> > Main git repo:
> >> >
> >> > git://git.kernel.org/pub/scm/devel/pahole/pahole.git
> >> >
> >> > Mirror git repo:
> >> >
> >> > https://github.com/acmel/dwarves.git
> >> >
> >> > tarball + gpg signature:
> >> >
> >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz
> >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2
> >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign
> >> >
> >> > Thanks a lot to all the contributors and distro packagers,
> >> > you're
> >> > on the
> >> > CC list, I appreciate a lot the work you put into these tools,
> >> >
> >> > Best Regards,
> >> >
> >> > BTF encoder:
> >> >
> >> > - Add support to BTF_KIND_ENUM64 to represent enumeration entries with
> >> > more than 32 bits.
> >> >
> >> > - Support multithreaded encoding, in addition to DWARF multithreaded
> >> > loading, speeding up the process.
> >> >
> >> > Selected just like DWARF multithreaded loading, using the 'pahole -j'
> >> > option.
> >> >
> >> > - Encode 'char' type as signed.
> >> >
> >> > BTF Loader:
> >> >
> >> > - Add support to BTF_KIND_ENUM64.
> >> >
> >> > pahole:
> >> >
> >> > - Introduce --lang and --lang_exclude to specify the language the
> >> > DWARF compile units were originated from to use or filter.
> >> >
> >> > Use case is to exclude Rust compile units while aspects of the
> >> > DWARF generated for it get sorted out in a way that the kernel
> >> > BPF verifier don't refuse loading the BTF generated from them.
> >> >
> >> > - Introduce --compile to generate compilable code in a similar fashion
> >> > to:
> >> >
> >> > bpftool btf dump file vmlinux format c > vmlinux.h
> >> >
> >> > As with 'bpftool', this will notice type shadowing, i.e. multiple
> >> > types
> >> > with the same name and will disambiguate by adding a suffix.
> >> >
> >> > - Don't segfault when processing bogus files.
> >> >
> >
> > --
> >
> > - Arnaldo
> >

--

- Arnaldo