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

Reply via email to