]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/amdkfd: make sure ring buffer is flushed before update wptr
authorVictor Zhao <Victor.Zhao@amd.com>
Thu, 14 Nov 2024 09:45:34 +0000 (17:45 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 20 Nov 2024 15:03:05 +0000 (10:03 -0500)
commit097c69d46ce01d25b9bd6a680a9c5e1c9e58c1da
tree3e60724adf77371e3b0350140d1dd7b3feaccd53
parent349af06a3abd0bb3787ee2daf3ac508412fe8dcc
drm/amdkfd: make sure ring buffer is flushed before update wptr

In a consecutive packet submission, for example unmap and query status,
when CP is reading wptr caused by unmap packet doorbell ring, if in some
case CP operates slower (e.g. doorbell_mode=1) and wptr has been updated
to next packet (query status), but the query status packet content has
not been flushed to memory yet, it will cause CP fetched stalled data.

Adding mb to ensure ring buffer has been updated before updating wptr.
Also adding a mb to ensure wptr updated before doorbell ring.

Signed-off-by: Victor Zhao <Victor.Zhao@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c