Tested on Navi 31 (gfx1100), 7.3.0-rc5 at 551c722f4080, with lockdep.

Without this patch the first GRBM-banked access through amdgpu_regs2
produces the report quoted in the commit message: from the write
branch when umr halts waves, and from the read branch for a single
"umr -b x x x -r '*.gfx1100.regGRBM_STATUS'" on a fresh boot.

With this patch, and with the chain from reservation_ww_class_mutex
through &amdgpu_notifier_lock_key down to &amdgpu_grbm_lock_key present
in /proc/lockdep, none of the following produced a report, and
debug_locks stayed 1:
- the banked read of GRBM_STATUS* above;
- "umr -O halt_waves -wa gfx_0.0.0" (banked SQ_CMD writes);
- writing SCRATCH_REG0 and reading it back through amdgpu_regs2 with
  GRBM broadcast, and through amdgpu_regs with the bank bits in the
  offset; both reads returned the value written.

The patch is against 551c722f4080 and also applies to
amd-staging-drm-next and next-20260929.

Reply via email to