Hi Masahiro, On Sun, Apr 6, 2025 at 1:21 PM Masahiro Yamada <masahi...@kernel.org> wrote: > > On Fri, Mar 21, 2025 at 8:28 AM Sami Tolvanen <samitolva...@google.com> wrote: > > > > With CONFIG_GENDWARFKSYMS, __gendwarfksyms_ptr variables are added > > to the kernel in EXPORT_SYMBOL() to ensure DWARF type information > > is available for exported symbols in the TUs where they're actually > > exported. These symbols are dropped when linking vmlinux, but > > dangling references to them remain in DWARF. > > > > With CONFIG_DEBUG_INFO_BTF enabled on X86, pahole versions > > before commit 9810758003ce ("btf_encoder: Verify 0 address > > DWARF variables are in ELF section") place these symbols in the > > .data..percpu section, which results in an "Invalid offset" error in > > btf_datasec_check_meta() during boot, as all the variables are at > > zero offset and have non-zero size. If CONFIG_DEBUG_INFO_BTF_MODULES > > is enabled, this also results in a failure to load modules with: > > > > failed to validate module [$module] BTF: -22 > > > > The pahole commit that adds 0 address DWARF variable verification > > was merged after v1.29 was released, so later versions of pahole > > shouldn't have this issue. Require pahole >v1.29 when GENDWARFKSYMS > > is enabled with DEBUG_INFO_BTF on X86. > > > > Reported-by: Paolo Pisati <paolo.pis...@canonical.com> > > Signed-off-by: Sami Tolvanen <samitolva...@google.com> > > The issue occurs with > 47dcb534e253 ("btf_encoder: Stop indexing symbols for VARs"), > then fixed by 9810758003ce ("btf_encoder: Verify 0 address > DWARF variables are in ELF section") > > > Perhaps, does it make sense to do this? > > depends on !X86 || !DEBUG_INFO_BTF || (PAHOLE_VERSION > 129 || > PAHOLE_VERSION < 128)
That's a good point. I confirmed that v1.27 works fine too. I'll send v2. Sami