[lkml]   [2019]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectANNOUNCE: pahole v1.16 (Fixes + BTF_KIND_FUNC)

The v1.16 release of pahole and its friends is out, available at
the usual places:

Main git repo:


Mirror git repo:

tarball + gpg signature:

Best Regards,

- Arnaldo

v1.16 changes:

BTF encoder:

Andrii Nakryiko <>:

- Preserve and encode exported functions as BTF_KIND_FUNC.

Add encoding of DWARF's DW_TAG_subprogram_type into BTF's BTF_KIND_FUNC
(plus corresponding BTF_KIND_FUNC_PROTO). Only exported functions are converted
for now. This allows to capture all the exported kernel functions, same subset
that's exposed through /proc/kallsyms.

BTF loader:

Arnaldo Carvalho de Melo <>

- Add support for BTF_KIND_FUNC

Some changes to the fprintf routines were needed, as BTF has as the
function type just a BTF_KIND_FUNC_PROTO, while DWARF has as the type for a
function its return value type. With a function->btf flag this was overcome and
all the other goodies in pfunct are present.

Pretty printer:

Arnaldo Carvalho de Melo:

- Account inline type __aligned__ member types for spacing:

union {
refcount_t rcu_users; /* 2568 4 */
struct callback_head rcu __attribute__((__aligned__(8))); /* 2568 16 */
- } __attribute__((__aligned__(8))); /* 2568 16 */
+ } __attribute__((__aligned__(8))); /* 2568 16 */
struct pipe_inode_info * splice_pipe; /* 2584 8 */

- Fix alignment of class members that are structs/enums/unions

E.g. look at that 'completion' member in this struct:

struct cpu_stop_done {
atomic_t nr_todo; /* 0 4 */
int ret; /* 4 4 */
- struct completion completion; /* 8 32 */
+ struct completion completion; /* 8 32 */

/* size: 40, cachelines: 1, members: 3 */
/* last cacheline: 40 bytes */

- Fixup handling classes with no members, solving a NULL deref.

Gareth Lloyd <>:

- Avoid infinite loop trying to determine type with static data member of its own type.

RPM spec file.

Jiri Olsa <>

Add dwarves dependency on libdwarves1.


Arnaldo Carvalho de Melo <>

- type->type == 0 is void, fix --compile for that

We were using the fall back for that, i.e. 'return 0;' was being emitted
for a function returning void, noticed with using BTF as the format.


- Print DW_TAG_subroutine_type as well

So that we can see at least via pdwtags those tags, be it from DWARF of BTF.


Arnaldo Carvalho de Melo <>

Fix ptr_table__add_with_id() handling of pt->nr_entries, covering how
BTF variables IDs are encoded.


Arnaldo Carvalho de Melo <>:

- Allow passing the format path specifier, to use with BTF

I.e. now we can, just like with pahole, use:

pglobal -F btf --variable foo.o

To get the global variables.

Tree wide:

Arnaldo Carvalho de Melo <>:

- Fixup issues pointed out by various coverity reports.

 \ /
  Last update: 2019-12-16 16:08    [W:0.030 / U:3.824 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site