Public bug reported:
[ Impact ]
rocdbgapi 7.2.3 (librocm-dbgapi0) delivers five upstream commits over
7.1.1, the most significant of which is a correctness fix in the GPU
debugger queue packet-id computation:
1. Off-by-one in packet_id computation (queue.cpp) — the condition used
to detect wrap-around when there are exactly ring_size packets in the
AQL queue used strict greater-than (>) instead of greater-than-or-equal
(>=). In this boundary case get_os_queue_packet_id returned an
incorrect packet ID, which could cause the ROCm debugger to misidentify
the current wave's execution position within a fully occupied dispatch
ring. Fix: change > to >= in the wrap-around branch.
2. Refactor library path discovery (initialization.cpp, utils_linux.cpp) —
splits dladdr-based library filename lookup into a new Linux-specific
utils_linux.cpp translation unit, using log_level as the anchor
symbol instead of the previously used process_callbacks. Affects only
the verbose log line printed at initialisation; no user-visible behaviour
change.
3. Refactor pipe_t into notifier_t (utils.cpp, utils_linux.cpp, process.cpp,
process.h) — introduces a platform-independent notifier_t abstract
interface and moves the Linux pipe_t implementation into
utils_linux.cpp. The process's client notifier is now held as a
unique_ptr<notifier_t>. Internal portability refactor; no user-visible
behaviour change.
4. Pass cwsr_record to scratch_memory_region (architecture.cpp, queue.cpp,
wave.cpp) — preparatory refactor threading the CWSR record through the
scratch memory region computation. No user-visible behaviour change.
5. Enable stack traces when building with Clang (CMakeLists.txt, debug.cpp) —
uses --print-file-name to locate libbacktrace.a independently of the
compiler's private tree, so Clang builds also produce debug backtraces on
fatal errors. Build infrastructure change; no runtime behaviour change for
the shipped binary.
No reverse dependencies on librocm-dbgapi0 are present in the archive beyond
the ROCm toolchain itself.
[ Test Plan ]
1. Build:
- sbuild or dpkg-buildpackage succeeds.
- dpkg --compare-versions 7.2.3-0ubuntu1 gt 7.1.1-0ubuntu1 returns true.
- Run dpkg-gensymbols and confirm no symbols are added, removed, or changed
(the .symbols file should remain identical — SONAME remains
librocm-dbgapi.so.0).
2. Installability:
- apt install librocm-dbgapi0 amd-dbgapi-dev succeeds.
- Confirm reverse dependencies remain installable without rebuild.
3. Autopkgtest:
- Run autopkgtest suite (dbgapi-test) on a GPU-equipped testbed and
confirm it passes. Output:
autopkgtest [18:42:44]: starting date and time: 2026-05-21 18:42:44+0000
autopkgtest [18:42:44]: version 5.55
autopkgtest [18:42:44]: host lxc-sessionizer-dev; command line:
/usr/bin/autopkgtest -U deb-rocdbgapi/rocdbgapi
deb-rocdbgapi/rocdbgapi_7.2.3-0ubuntu1_amd64.changes -- lxd
ubuntu-daily:resolute --profile=rocm-gpu
autopkgtest [18:47:09]: testing package rocdbgapi version 7.2.3-0ubuntu1
autopkgtest [18:47:18]: test dbgapi-test: [-----------------------
Checking pkg-config...
CFLAGS: -I/usr/lib/x86_64-linux-gnu/pkgconfig/../../../include
LIBS: -L/usr/lib/x86_64-linux-gnu/pkgconfig/../../../lib/x86_64-linux-gnu
-lrocm-dbgapi
Compiling test...
Running test...
ROCm Debugger API Version: 0.77.4
Build string: 0.77.4-developer-build-20260521T183933-ubuntu-git-ea0237e
Autopkgtest rocdbgapi: PASS
autopkgtest [18:47:19]: test dbgapi-test: -----------------------]
autopkgtest [18:47:19]: test dbgapi-test: - - - - - - - - - - results - - -
- - - - - - -
dbgapi-test PASS (superficial)
autopkgtest [18:47:20]: @@@@@@@@@@@@@@@@@@@@ summary
dbgapi-test PASS (superficial)
2026-05-21 18:47:21 - Autopkg tests ended for rocdbgapi.
Tests took: 0h 4m 38s.
[ Where problems could occur ]
* The off-by-one fix changes control flow in get_os_queue_packet_id
only for the exact boundary case where ring_size packets occupy the
ring simultaneously. Any debugger consumer that previously worked around
the wrong packet ID (e.g. by adding 1) would now get a doubled offset;
however, no such workarounds are expected in the archive. Risk: low.
* The pipe_t → notifier_t refactor replaces a raw struct member with a
unique_ptr. A null dereference assertion (dbgapi_assert) guards access;
construction failure at process attach would now surface as a fatal error
rather than a silent invalid-fd. Risk: very low.
* All other changes are build infrastructure or internal portability
refactors
with no runtime impact on the shipped binary.
[ Other Info ]
* No ABI/API breakage: the debian/librocm-dbgapi0.symbols file is expected
to be identical between 7.1.1 and 7.2.3. All refactored types (pipe_t,
notifier_t) are internal; the public AMD_DBGAPI versioned symbol set is
unchanged. SONAME remains librocm-dbgapi.so.0.
* This update is part of the coordinated ROCm 7.2.3 stack release.
* PPA: https://launchpad.net/~igorluppi/+archive/ubuntu/rocdbgapi-7.2.3
* Upstream version comparison:
https://github.com/ROCm/ROCdbgapi/compare/rocm-7.1.1...rocm-7.2.3
** Affects: rocdbgapi (Ubuntu)
Importance: Undecided
Assignee: Igor Luppi (igorluppi)
Status: New
** Changed in: rocdbgapi (Ubuntu)
Assignee: (unassigned) => Igor Luppi (igorluppi)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2153818
Title:
SRU: New upstream version 7.2.3
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rocdbgapi/+bug/2153818/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs