public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
  • * Re: parallel pahole hangs while building modules from nvidia-open-kernel-dkms
           [not found] <Z-JzFrXaopQCYd6h@localhost>
           [not found] ` <83315e0bce204f7745448fff550574d44b09b4c1@linux.dev>
    @ 2025-03-28 20:25 ` Ihor Solodrai
      2025-03-31 13:17   ` Alan Maguire
      1 sibling, 1 reply; 4+ messages in thread
    From: Ihor Solodrai @ 2025-03-28 20:25 UTC (permalink / raw)
      To: Domenico Andreoli, alan.maguire, acme; +Cc: dwarves, bpf
    
    On 3/25/25 2:10 AM, Domenico Andreoli wrote:
    > Hi,
    >
    >   This a forward of Debian bug report [0] where you can find more
    > details. At [1] and [2] you can get the kernel and module to reproduce.
    > I could reproduce on both amd64 and arm64 using pahole 1.29.
    >
    > This is marked as serious severity because it makes the autobuilder hang
    > as well [3].
    >
    > Could you please help?
    >
    > Regards,
    > Domenico
    >
    >
    > The command to succeed:
    >
    > This simplified (sequential) command succeeds:
    >
    > cp nvidia-modeset.base.ko nvidia-modeset.ko
    > LLVM_OBJCOPY="x86_64-linux-gnu-objcopy" pahole -J --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs --btf_features=distilled_base --btf_base vmlinux nvidia-modeset.ko -j1
    > echo $?
    >
    > producing this output:
    > ===== 8< =====
    > dwarf_expr: unhandled 0x12 DW_OP_ operation
    > Unsupported DW_TAG_reference_type(0x10): type: 0x28172
    
    Domenico, Alan, Arnaldo,
    
    I was able to reproduce this error using the input files provided by
    Domenico [1][2].
    
        ./build/pahole -J --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs --btf_features=distilled_base --btf_base debian-repro/vmlinux debian-repro/nvidia-modeset.base.ko -j1
        dwarf_expr: unhandled 0x12 DW_OP_ operation
        Unsupported DW_TAG_reference_type(0x10): type: 0x28172
        Error while encoding BTF.
        libbpf: failed to find '.BTF' ELF section in debian-repro/nvidia-modeset.base.ko
        pahole: debian-repro/nvidia-modeset.base.ko: Invalid argument
    
    
    The unhandled tag points to src/common/displayport/src/dp_auxretry.cpp
    [3] of nvidia-modeset.base.ko
    
    Now, as far as I know, BTF can't represent C++-style references
    directly (maybe indirectly with tags?).
    
    According to the code, pahole simply bails out in case it encounters
    `DW_TAG_reference_type` during BTF encoding. So the question is why
    BTF generation is even attempted for a module written in C++? It does
    not appear to be a supported use-case.
    
    Please correct me if I'm wrong about this.
    
    Alan, sorry for jumping into this uninvited. I trust you'll take over
    from here. Thanks!
    
    I've sent a patch with a fix for the hanging [4].
    
    [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1100503;filename=vmlinux.zst;msg=19
    [2] https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1100503;filename=nvidia-modeset.base.ko.zst;msg=12
    [3] https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/common/displayport/src/dp_auxretry.cpp
    [4] https://lore.kernel.org/bpf/20250328174003.3945581-1-ihor.solodrai@linux.dev/
    
    > Error while encoding BTF.
    > 0
    > ===== >8 =====
    >
    > [...]
    
    ^ permalink raw reply	[flat|nested] 4+ messages in thread

  • end of thread, other threads:[~2025-03-31 13:18 UTC | newest]
    
    Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <Z-JzFrXaopQCYd6h@localhost>
         [not found] ` <83315e0bce204f7745448fff550574d44b09b4c1@linux.dev>
         [not found]   ` <Z-ZmcwXyMtAQjaoE@localhost>
    2025-03-28 16:25     ` parallel pahole hangs while building modules from nvidia-open-kernel-dkms Ihor Solodrai
    2025-03-28 17:55       ` Ihor Solodrai
    2025-03-28 20:25 ` Ihor Solodrai
    2025-03-31 13:17   ` Alan Maguire
    

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