`pahole` wanted features & bugfixes
ojeda opened this issue · 0 comments
ojeda commented
Note: see as well the pahole
Rust cases: https://github.com/Rust-for-Linux/pahole-rust-cases.
Features that we would like to see
Required (we almost certainly want them)
-
Support
DW_TAG_variant_part
.- Currently it is the last warning for Rust build, with:
⬢[acme@toolbox linux]$ pahole -C '<kernel::str::RawFormatter as core::fmt::Write>::{vtable_type}' ../build/rust-kernel/rust/kernel.o die__process_class: tag not supported 0x33 (variant_part) at <14f43>! struct <kernel::str::RawFormatter as core::fmt::Write>::{vtable_type} { () * drop_in_place __attribute__((__aligned__(8))); /* 0 8 */ usize size __attribute__((__aligned__(8))); /* 8 8 */ usize align __attribute__((__aligned__(8))); /* 16 8 */ () * __method3 __attribute__((__aligned__(8))); /* 24 8 */ () * __method4 __attribute__((__aligned__(8))); /* 32 8 */ () * __method5 __attribute__((__aligned__(8))); /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* forced alignments: 6 */ /* last cacheline: 48 bytes */ } __attribute__((__aligned__(8)));
- acmel/dwarves@2e8cd6a ("dwarf_loader: Ignore DW_TAG_variant_part for now to fix a segfault") (v1.18).
- Currently it is the last warning for Rust build, with:
-
Support BTF for Rust.
- acmel/dwarves@431df45 ("btfdiff: Exclude Rust CUs since those are not yet being converted to BTF on the Linux kernel") (v1.25).
Nice to have (not critical, we could workaround if needed, etc.)
Low priority (we will likely not use them in the end)
Done (stabilized, fixed, not needed anymore, etc.)
-
Do
--lang_exclude
CU filtering earlier.- acmel/dwarves@5e3ed3e ("pahole: Do --lang_exclude CU filtering earlier") (v1.28).
- acmel/dwarves@c46455b ("dwarf_loader: Allow filtering CUs early in loading") (v1.28).
-
Support
DW_TAG_template_type_param
.- acmel/dwarves@8a1e023 ("dwarf_loader: Initial support for DW_TAG_template_type_param tag") (v1.28).
-
Support reordering of fields.
- i.e. avoid assuming structs fields are in order, since Rust's default representation reorders them.
- acmel/dwarves@c4eb189 ("core: Check that we're adding DW_TAG_member sorted by byte offset") (v1.25).
-
Support
--lang
and--lang_exclude
.- Used by: commit c117797 ("btf, scripts: Exclude Rust CUs with pahole").
- acmel/dwarves@8ee3637 ("pahole: Introduce --lang to ask for only compilation units written in some languages") (v1.24).
- acmel/dwarves@49358df ("pahole: Add --lang_exclude to allow skipping compilation units written in some languages") (v1.24).
Bugs that we would like to see fixed
Required (we almost certainly want them)
Nice to have (probably not critical, we could workaround if needed, etc.)
Low priority (we will likely not use them in the end)
Done (stabilized, fixed, or not needed anymore, etc.)
- Fix sorting of Rust structs.
- acmel/dwarves@1231b6b ("dwarf_loader: Fix sorting of Rust structs") (v1.25).