AMD General
Will resent a new version for updating the commit log.
Regards,
Prike
> -----Original Message-----
> From: Liang, Prike <[email protected]>
> Sent: Thursday, May 14, 2026 8:43 PM
> To: [email protected]
> Cc: Deucher, Alexander <[email protected]>; Koenig, Christian
> <[email protected]>; Liang, Prike <[email protected]>
> Subject: [PATCH 2/2] drm/amdgpu: unmap userq for evicting user queue
>
> If the driver only preempts queues, there can still be inflight waves,
> pending dispatch
> state, or resume/redispatch possibility tied to the same queue. Then the
> VM/TTM
> side may proceed to move/unmap queue related BOs during evicting the queue
> while shader TCP clients still need to access them.
>
> So for eviction, unmap is safer because it makes the queue nonrunnable before
> memory backing is invalidated. Meanwhile, for a idle queue it's more sutiable
> for
> unmapping it rather preempt and unmapping also safe more processing time than
> preempt.
>
> Signed-off-by: Prike Liang <[email protected]>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> index 2e3edb6dd506..a63dfdfa4195 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> @@ -1048,7 +1048,7 @@ amdgpu_userq_restore_all(struct amdgpu_userq_mgr
> *uq_mgr)
> continue;
> }
>
> - r = amdgpu_userq_restore_helper(queue);
> + r = amdgpu_userq_map_helper(queue);
> if (r)
> ret = r;
>
> @@ -1285,7 +1285,7 @@ amdgpu_userq_evict_all(struct amdgpu_userq_mgr
> *uq_mgr)
>
> /* Try to unmap all the queues in this process ctx */
> xa_for_each(&uq_mgr->userq_xa, queue_id, queue) {
> - r = amdgpu_userq_preempt_helper(queue);
> + r = amdgpu_userq_unmap_helper(queue);
> if (r)
> ret = r;
> }
> --
> 2.34.1