summaryrefslogtreecommitdiff
path: root/scripts/check-git
diff options
context:
space:
mode:
authorJesse Zhang <Jesse.Zhang@amd.com>2026-07-30 17:17:53 +0800
committerAlex Deucher <alexander.deucher@amd.com>2026-08-06 12:44:39 -0400
commit288cc4a54a002c2f28d20859f30547512a1e2aba (patch)
tree55596f696ae6bc5dbb6057a2715789fc6c46769e /scripts/check-git
parent2844ade998974bc2b745e78bda8fffbab6143612 (diff)
downloadlinux-288cc4a54a002c2f28d20859f30547512a1e2aba.tar.gz
linux-288cc4a54a002c2f28d20859f30547512a1e2aba.zip
drm/amdgpu/mes12: fix dropped dispatches under queue oversubscription
On gfx12, when more queues are ready than there are HQD slots (oversubscription), MES keeps queues unmapped and maps a queue to an HQD on demand when its doorbell rings; a queue is only refetched once its per-queue work_done is cleared. Historically oversubscription was handled via the aggregated doorbell, but that is a shared level-wide signal: MES cannot tell which queue rang and never clears a queue's work_done, so it relies on the coarse oversubscription timer to rescan. gfx12 therefore drives GFX/compute through the per-queue unmapped-doorbell path instead (the aggregated doorbell now only serves SDMA), which can pinpoint the ringing queue and lets MES stay idle otherwise. But with unmapped-doorbell mode 1 (basic) a ring only sets a coarse level-wide ready flag and does not read the per-queue bitmap or clear the ringing queue's work_done. A queue still marked done from a prior dispatch is skipped and its new work is never fetched: the completion never signals, while queue creation succeeds and no dmesg error is reported. Switch to mode 2 (basic+): MES reads the per-queue CP_UNMAPPED_QUEUE bitmap, identifies which queue rang, and clears its work_done so it is rescheduled promptly. This affects every queue MES schedules on gfx12 (KFD and DRM user queues), which share the one MES instance and this global setting. Tested on gfx1201: concurrent multi-queue dispatch that intermittently stalled under mode 1 now passes on both the KFD and DRM userq paths. v2: update commit message: describe the oversubscription case, why the aggregated doorbell is not used for GFX/compute on gfx12, and why basic+ (not basic) is required. Signed-off-by: Jesse Zhang <Jesse.Zhang@amd.com> Reviewed-by: Shaoyun Liu <shaoyun.liu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'scripts/check-git')
0 files changed, 0 insertions, 0 deletions