Hi Arnaldo, I noticed nixos had to disable BTF for 5.15+ builds -- split BTF for modules got in 5.11 and that's the first kernel after this so it matches up. I could reproduce by just building any kernel with ARCH=i386 and using a 32bit pahole $ LD_LIBRARY_PATH=/tmp/pahole/build /tmp/pahole/build/pahole -J --btf_base vmlinux arch/x86/crypto/aesni-intel.ko Failed to parse base BTF 'vmlinux': -22 $ file /tmp/pahole/build/pahole /tmp/pahole/build/pahole: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /nix/store/pp1yzf2flqnjm02jnjcgxhx015bhmi9j-glibc-2.34-210/lib/ld-linux.so.2, for GNU/Linux 2.6.32, with debug_info, not stripped (64bit pahole works with the same input, and interestingly the 32bit pahole works with a 64bit kernel/modules -- I can reproduce on either 5.15 or current master as long as it's built with ARCH=i686 though) If cross-compiling pahole to i686 is a pain the issue apparently is reproductible with native armhf builds as well according to comments on the nixos PR: https://github.com/NixOS/nixpkgs/pull/178256 I'm not attaching a config, a minimal .config with just BTF and module BTF was enough for me (allnoconfig adjusted to get these) Please let me know if you need any more information, -- Dominique