Your message dated Wed, 02 Apr 2025 10:49:28 +0000
with message-id <[email protected]>
and subject line Bug#1100503: fixed in dwarves 1.29-3
has caused the Debian Bug report #1100503,
regarding pahole: parallel pahole hangs while building modules from 
nvidia-open-kernel-dkms
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1100503: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1100503
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: pahole
Version: 1.29-2
Severity: important
Control: affects -1 + src:nvidia-open-gpu-kernel-modules

Building kernel modules from nvidia-open-kernel-dkms hangs on this
command:

LLVM_OBJCOPY="x86_64-linux-gnu-objcopy" pahole -J -j 
--btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs
 -j --lang_exclude=rust --btf_features=distilled_base --btf_base vmlinux 
/var/lib/dkms/nvidia-current-open/545.23.06/build/nvidia-modeset.ko

I can fix that by removing -j (2x) from the command (or appending -j1).


For easier reproduction I'll add a compressed version of the problematic
module (backed up before the pahole call which modifies it).
It was built from nvidia-open-kernel-dkms (545.23.06-3).
Furthermore you'll need linux-headers-6.12.17-amd64 (6.12.17-1).

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 
/usr/src/linux-headers-6.12.17-amd64/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
Error while encoding BTF.
0
===== >8 =====

While this (parallel) command hangs:

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 
/usr/src/linux-headers-6.12.17-amd64/vmlinux nvidia-modeset.ko -j2
echo $?

producing this output:
===== 8< =====
dwarf_expr: unhandled 0x12 DW_OP_ operation
dwarf_expr: unhandled 0x12 DW_OP_ operation
dwarf_expr: unhandled 0x12 DW_OP_ operation
dwarf_expr: unhandled 0x12 DW_OP_ operation
Unsupported DW_TAG_reference_type(0x10): type: 0x28172
Error while encoding BTF.
Terminated
143
===== >8 =====
(hanging process terminated with 'pkill pahole')
(and with more parallelism (or just plain -j), the
'unhandled 0x12 DW_OP_' message gets repeated more often)

Looking with gdb at pahole while it is hanging:

(gdb) info threads
  Id   Target Id                                   Frame
* 1    Thread 0x7fa3fbd00740 (LWP 385570) "pahole" __syscall_cancel_arch () at 
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
  2    Thread 0x7fa3f95fe6c0 (LWP 385604) "pahole" __syscall_cancel_arch () at 
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56

(gdb) bt
#0  __syscall_cancel_arch () at 
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007fa3fbea25a8 in __internal_syscall_cancel (a1=<optimized out>, 
a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, 
a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007fa3fbea2bdc in __futex_abstimed_wait_common64 (private=128, 
futex_word=0x7fa3f95fe990, expected=<optimized out>, op=<optimized out>, 
abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fa3f95fe990, 
expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, 
private=private@entry=128, cancel=cancel@entry=true) at 
./nptl/futex-internal.c:87
#4  0x00007fa3fbea2c3b in __GI___futex_abstimed_wait_cancelable64 
(futex_word=futex_word@entry=0x7fa3f95fe990, expected=<optimized out>, 
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) 
at ./nptl/futex-internal.c:139
#5  0x00007fa3fbea76c4 in __pthread_clockjoin_ex (threadid=140342240208576, 
thread_return=thread_return@entry=0x7ffce73f7e20, clockid=clockid@entry=0, 
abstime=abstime@entry=0x0, block=block@entry=true) at 
./nptl/pthread_join_common.c:108
#6  0x00007fa3fbea753f in ___pthread_join (threadid=<optimized out>, 
thread_return=thread_return@entry=0x7ffce73f7e20) at ./nptl/pthread_join.c:24
#7  0x0000561444ddea6b in dwarf_cus__process_cus (dcus=0x7ffce73f7e70) at 
./dwarf_loader.c:3761
#8  cus__load_module (cus=<optimized out>, conf=<optimized out>, mod=<optimized 
out>, dw=<optimized out>, elf=<optimized out>, filename=<optimized out>) at 
./dwarf_loader.c:3920
#9  cus__process_dwflmod (dwflmod=<optimized out>, userdata=<optimized out>, 
name=<optimized out>, base=<optimized out>, arg=<optimized out>) at 
./dwarf_loader.c:3964
#10 0x00007fa3fc116b01 in dwfl_getmodules () from 
/lib/x86_64-linux-gnu/libdw.so.1
#11 0x0000561444dd8d62 in cus__process_file (cus=0x561470ec8480, 
conf=0x561444df2280 <conf_load>, fd=3, filename=0x7ffce73fa617 
"nvidia-modeset.ko") at ./dwarf_loader.c:4030
#12 dwarf__load_file (cus=0x561470ec8480, conf=0x561444df2280 <conf_load>, 
filename=0x7ffce73fa617 "nvidia-modeset.ko") at ./dwarf_loader.c:4067
#13 0x0000561444dca74f in cus__load_file (cus=cus@entry=0x561470ec8480, 
conf=conf@entry=0x561444df2280 <conf_load>, filename=0x7ffce73fa617 
"nvidia-modeset.ko") at ./dwarves.c:2273
#14 0x0000561444dcae4d in cus__load_files (cus=0x561470ec8480, 
conf=conf@entry=0x561444df2280 <conf_load>, 
filenames=filenames@entry=0x7ffce73f8360) at ./dwarves.c:2954
#15 0x0000561444dc0003 in main (argc=8, argv=0x7ffce73f8328) at ./pahole.c:3602

(gdb) thread 2
[Switching to thread 2 (Thread 0x7fa3f95fe6c0 (LWP 385604))]
#0  __syscall_cancel_arch () at 
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
56      in ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S
(gdb) bt
#0  __syscall_cancel_arch () at 
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007fa3fbea25a8 in __internal_syscall_cancel (a1=<optimized out>, 
a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, 
a6=a6@entry=4294967295, nr=202) at ./nptl/cancellation.c:49
#2  0x00007fa3fbea2bdc in __futex_abstimed_wait_common64 (private=0, 
futex_word=0x561444df6928 <cus_processing_queue+72>, expected=<optimized out>, 
op=<optimized out>, abstime=0x0, cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x561444df6928 
<cus_processing_queue+72>, expected=<optimized out>, clockid=clockid@entry=0, 
abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true)
    at ./nptl/futex-internal.c:87
#4  0x00007fa3fbea2c3b in __GI___futex_abstimed_wait_cancelable64 
(futex_word=futex_word@entry=0x561444df6928 <cus_processing_queue+72>, 
expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, 
private=private@entry=0)
    at ./nptl/futex-internal.c:139
#5  0x00007fa3fbea5098 in __pthread_cond_wait_common (cond=0x561444df6908 
<cus_processing_queue+40>, mutex=0x561444df68e0 <cus_processing_queue>, 
clockid=0, abstime=0x0) at ./nptl/pthread_cond_wait.c:426
#6  ___pthread_cond_wait (cond=cond@entry=0x561444df6908 
<cus_processing_queue+40>, mutex=mutex@entry=0x561444df68e0 
<cus_processing_queue>) at ./nptl/pthread_cond_wait.c:458
#7  0x0000561444ddeddb in cus_queue__enqdeq_job (job=<optimized out>) at 
./dwarf_loader.c:3542
#8  dwarf_loader__worker_thread (arg=0x7ffce73f7e70) at ./dwarf_loader.c:3655
#9  0x00007fa3fbea5abd in start_thread (arg=<optimized out>) at 
./nptl/pthread_create.c:448
#10 0x00007fa3fbf237b8 in __GI___clone3 () at 
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78


Second problem:

    dwarf_expr: unhandled 0x12 DW_OP_ operation
    Unsupported DW_TAG_reference_type(0x10): type: 0x28172
    Error while encoding BTF.

pahole reports an error, but nevertheless exits with 0.
Is the resulting .ko file still OK?

What is causing these "unsupported" messages?
Is it possible to avoid them by adding some appropriate options?
I found https://github.com/NVIDIA/open-gpu-kernel-modules/issues/756
which attempts to add --lang_exclude=c++ to the command line, but that
didn't make any difference for me.


Andreas

--- End Message ---
--- Begin Message ---
Source: dwarves
Source-Version: 1.29-3
Done: Domenico Andreoli <[email protected]>

We believe that the bug you reported is fixed in the latest version of
dwarves, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Domenico Andreoli <[email protected]> (supplier of updated dwarves package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Fri, 28 Mar 2025 09:39:34 +0100
Source: dwarves
Architecture: source
Version: 1.29-3
Distribution: unstable
Urgency: medium
Maintainer: Domenico Andreoli <[email protected]>
Changed-By: Domenico Andreoli <[email protected]>
Closes: 1100503 1101262
Changes:
 dwarves (1.29-3) unstable; urgency=medium
 .
   * Add 03-dwarf_loader-fix-termination-on-BTF-encoding-error.patch.
     Closes: #1100503, #1101262.
Checksums-Sha1:
 e596e13dff6899857a042e29b9f003f88982182e 2186 dwarves_1.29-3.dsc
 6b05e19ce9437ff865b965fd15a31f986e156591 21984 dwarves_1.29-3.debian.tar.xz
 4ed1c3f3c4eeca35582f7cdf2589d3606cde4dbd 7951 dwarves_1.29-3_arm64.buildinfo
Checksums-Sha256:
 d1be89b6a5a27343ceb3b37867097438d7d544a0fa69dfc48fb116c9471e3d14 2186 
dwarves_1.29-3.dsc
 19e926c9eaf4fb4c8feb182faba314048fb59592812628bc870eeb115cfe81b7 21984 
dwarves_1.29-3.debian.tar.xz
 c4dcdd60d121de385705a1e51e7f9ddcea0b76b824ece3630e0971e8a2edcd47 7951 
dwarves_1.29-3_arm64.buildinfo
Files:
 653c3f5c693a93fa5e88a3bafa01549d 2186 utils optional dwarves_1.29-3.dsc
 fa50e94ba36c1a9299cd5ab14c0c0821 21984 utils optional 
dwarves_1.29-3.debian.tar.xz
 7e62d001acda15663999c0ad8d2b1660 7951 utils optional 
dwarves_1.29-3_arm64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEEGSWGdoKrcEzTtUezikr1XMf+zOIFAmftEoARHGNhdm9rQGRl
Ymlhbi5vcmcACgkQikr1XMf+zOJv0w/9FshJEx88SfiKHdWpeH6nucxQDiILNn9b
GGPGj7mDRcyHL3vfciCX6hLkkbop5hOp2MvybQ3bFJG98tI9J9NPRU6CDHxFg+UO
37G0ajAWeRkBVJisjd45dgyE6aWL09zRk3c8IbEw5nGzJ7ywiPTCb4VM3BGr0KZP
0Qyrd4OuGGp31wzQFgx7ryUMatxGnEQdQBrDbkf2qWueknb08IMimISyOOhMCMQU
GFu+zM9Q2UqpV/i1Z6VBKp0+om3J+avtT+mBpVQHfJGRmc0FkQ5m49HzfZWR6Xl4
Lv4e9e5g8Ten4EBpPbMjjIt/YQrCqADAB0QrGg/kHP9DGBMoY5w/ojSsCmeN8B86
8z5qe//W9MyoxMkExg8ZhmpuO3/V6xsTA8NGdIkMbi0MBxmQ8aolEd99Mh5nGT89
cNlZVBwfwG2jKGt7pXO0dB7/+15o+Siy1BEWE19bZbcFyD5V/5F84x1d/3tvx/E9
yYAU618lbRkzVPWjjnzhjmvZbXAupL/ZphaXBtEVZcpS2L1u1ZAmVvb0N7EIyDMZ
AFVW7ytN+wNw+/kjCKalzj4nh/d0dUfPMvCortZxSMV036+Y+/NarpwhDprLSAld
cYmzSBEkvxgfYP2mCOXUj/Y8OLH3Ld8mtoD7VwVnJDotl/4hKowUgZlnhHZOBjlf
OKU5GLoZrFA=
=f/4U
-----END PGP SIGNATURE-----

Attachment: pgpokbcxsmjj6.pgp
Description: PGP signature


--- End Message ---

Reply via email to