lkml.org 
[lkml]   [2020]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 279/330] drm/amdkfd: fix restore worker race condition
    Date
    From: Philip Yang <Philip.Yang@amd.com>

    [ Upstream commit f7646585a30ed8ef5ab300d4dc3b0c1d6afbe71d ]

    In free memory of gpu path, remove bo from validate_list to make sure
    restore worker don't access the BO any more, then unregister bo MMU
    interval notifier. Otherwise, the restore worker will crash in the
    middle of validating BO user pages if MMU interval notifer is gone.

    Signed-off-by: Philip Yang <Philip.Yang@amd.com>
    Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
    index edb561baf8b90..f3fa271e3394c 100644
    --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
    +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
    @@ -1247,15 +1247,15 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
    * be freed anyway
    */

    - /* No more MMU notifiers */
    - amdgpu_mn_unregister(mem->bo);
    -
    /* Make sure restore workers don't access the BO any more */
    bo_list_entry = &mem->validate_list;
    mutex_lock(&process_info->lock);
    list_del(&bo_list_entry->head);
    mutex_unlock(&process_info->lock);

    + /* No more MMU notifiers */
    + amdgpu_mn_unregister(mem->bo);
    +
    ret = reserve_bo_and_cond_vms(mem, NULL, BO_VM_ALL, &ctx);
    if (unlikely(ret))
    return ret;
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-09-18 04:57    [W:4.132 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site