public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* ANNOUNCE: pahole v1.27 (reproducible builds, BTF kfuncs)
@ 2024-06-11 21:26 Arnaldo Carvalho de Melo
  2024-06-11 21:38 ` Dominique Martinet
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Arnaldo Carvalho de Melo @ 2024-06-11 21:26 UTC (permalink / raw)
  To: dwarves
  Cc: Linux Kernel Mailing List, bpf, Alan Maguire, Jiri Olsa,
	Jan Engelhardt, Matthias Schwarzott, Viktor Malik,
	Eduard Zingerman, Jan Alexander Steffens, Domenico Andreoli,
	Dominique Leuenberger, Daniel Xu, Yonghong Song

Hi,
 
	The v1.27 release of pahole and its friends is out, supporting
parallel reproducible builds and encoding kernel kfuncs in BTF, allowing
tools such as bpftrace to enumerate the available kfuncs and obtain its
function signatures and return types.

Main git repo:

   https://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.27.tar.xz
   https://fedorapeople.org/~acme/dwarves/dwarves-1.27.tar.bz2
   https://fedorapeople.org/~acme/dwarves/dwarves-1.27.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,

- Arnaldo

BTF encoder:

- Inject kfunc decl tags into BTF from the BTF IDs ELF section in the Linux
  kernel vmlinux file.

  This allows tools such as bpftools and pfunct to enumerate the available kfuncs
  and to gets its function signature, the type of its return and of its
  arguments. See the example in the BTF loader changes description, below.

- Support parallel reproducible builds, where it doesn't matter how many
  threads are used, the end BTF encoding result is the same.

- Sanitize unsupported DWARF int type with greater-than-16 byte, as BTF doesn't
  support it.

BTF loader:

- Initial support for BTF_KIND_DECL_TAG:

  $ pfunct --prototypes -F btf vmlinux.btf.decl_tag,decl_tag_kfuncs | grep ^bpf_kfunc | head
  bpf_kfunc void cubictcp_init(struct sock * sk);
  bpf_kfunc void cubictcp_cwnd_event(struct sock * sk, enum tcp_ca_event event);
  bpf_kfunc void cubictcp_cong_avoid(struct sock * sk, u32 ack, u32 acked);
  bpf_kfunc u32 cubictcp_recalc_ssthresh(struct sock * sk);
  bpf_kfunc void cubictcp_state(struct sock * sk, u8 new_state);
  bpf_kfunc void cubictcp_acked(struct sock * sk, const struct ack_sample  * sample);
  bpf_kfunc int bpf_iter_css_new(struct bpf_iter_css * it, struct cgroup_subsys_state * start, unsigned int flags);
  bpf_kfunc struct cgroup_subsys_state * bpf_iter_css_next(struct bpf_iter_css * it);
  bpf_kfunc void bpf_iter_css_destroy(struct bpf_iter_css * it);
  bpf_kfunc s64 bpf_map_sum_elem_count(const struct bpf_map  * map);
  $ pfunct --prototypes -F btf vmlinux.btf.decl_tag,decl_tag_kfuncs | grep ^bpf_kfunc | wc -l
  116
  $

pretty printing:

- Fix hole discovery with inheritance in C++.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-07-10 19:31 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-11 21:26 ANNOUNCE: pahole v1.27 (reproducible builds, BTF kfuncs) Arnaldo Carvalho de Melo
2024-06-11 21:38 ` Dominique Martinet
2024-06-11 22:52   ` Arnaldo Carvalho de Melo
2024-06-11 23:46     ` Dominique Martinet
2024-06-12 10:07 ` Matthias Schwarzott
2024-06-14 19:09   ` Arnaldo Carvalho de Melo
2024-06-13 21:40 ` Nathan Chancellor
2024-06-17 19:39   ` Arnaldo Carvalho de Melo
2024-06-17 20:02     ` [PATCH/RFT] " Arnaldo Carvalho de Melo
2024-06-17 21:08       ` Nathan Chancellor
2024-06-18 13:51         ` Arnaldo Carvalho de Melo
2024-06-18 14:30           ` [PATCH fyi 1/1] dwarf_loader: Add missing cus__add(cus, cu) to cus__merge_and_process_cu() Arnaldo Carvalho de Melo
2024-07-10 19:31           ` [PATCH/RFT] Re: ANNOUNCE: pahole v1.27 (reproducible builds, BTF kfuncs) Nathan Chancellor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox