[PATCH] drm/amdgpu: csa unmap use uninterruptible lock
Christian König
christian.koenig at amd.com
Thu May 8 09:23:59 UTC 2025
On 5/7/25 23:39, Philip Yang wrote:
> After process exit to unmap csa and free GPU vm, if signal is accepted
> and then waiting to take vm lock is interrupted and return, it causes
> memory leaking and below warning backtrace.
>
> Change to use uninterruptible wait lock fix the issue.
>
> WARNING: CPU: 69 PID: 167800 at amd/amdgpu/amdgpu_kms.c:1525
> amdgpu_driver_postclose_kms+0x294/0x2a0 [amdgpu]
> Call Trace:
> <TASK>
> drm_file_free.part.0+0x1da/0x230 [drm]
> drm_close_helper.isra.0+0x65/0x70 [drm]
> drm_release+0x6a/0x120 [drm]
> amdgpu_drm_release+0x51/0x60 [amdgpu]
> __fput+0x9f/0x280
> ____fput+0xe/0x20
> task_work_run+0x67/0xa0
> do_exit+0x217/0x3c0
> do_group_exit+0x3b/0xb0
> get_signal+0x14a/0x8d0
> arch_do_signal_or_restart+0xde/0x100
> exit_to_user_mode_loop+0xc1/0x1a0
> exit_to_user_mode_prepare+0xf4/0x100
> syscall_exit_to_user_mode+0x17/0x40
> do_syscall_64+0x69/0xc0
>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c
> index cfdf558b48b6..02138aa55793 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c
> @@ -109,7 +109,7 @@ int amdgpu_unmap_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm,
> struct drm_exec exec;
> int r;
>
> - drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT, 0);
> + drm_exec_init(&exec, 0, 0);
> drm_exec_until_all_locked(&exec) {
> r = amdgpu_vm_lock_pd(vm, &exec, 0);
> if (likely(!r))
More information about the amd-gfx
mailing list