diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1571-drm-amdkfd-Avoid-validating-PD-PT-BOs-when-updating-.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1571-drm-amdkfd-Avoid-validating-PD-PT-BOs-when-updating-.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1571-drm-amdkfd-Avoid-validating-PD-PT-BOs-when-updating-.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1571-drm-amdkfd-Avoid-validating-PD-PT-BOs-when-updating-.patch new file mode 100644 index 00000000..a5bd31fb --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1571-drm-amdkfd-Avoid-validating-PD-PT-BOs-when-updating-.patch @@ -0,0 +1,59 @@ +From 63aa6282865d2794845d956e89779f24444704d7 Mon Sep 17 00:00:00 2001 +From: Yong Zhao <yong.zhao@amd.com> +Date: Fri, 16 Dec 2016 18:41:33 -0500 +Subject: [PATCH 1571/4131] drm/amdkfd: Avoid validating PD PT BOs when + updating PTE + +When update_gpuvm_pte() is called during memory eviction, PD PT BOs are +already validated, so we move the validation out of update_gpuvm_pte(). + +Change-Id: I732761215a404dedd28030dcb079be009904d0a0 +Signed-off-by: Yong Zhao <yong.zhao@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +index 7624d37..27205a0 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +@@ -1014,12 +1014,6 @@ static int update_gpuvm_pte(struct amdgpu_device *adev, + bo_va = entry->bo_va; + vm = bo_va->vm; + bo = bo_va->bo; +- /* Validate PT / PTs */ +- ret = validate_pt_pd_bos(vm); +- if (ret != 0) { +- pr_err("validate_pt_pd_bos failed\n"); +- return ret; +- } + + /* Update the page directory */ + ret = amdgpu_vm_update_page_directory(adev, vm); +@@ -1064,6 +1058,15 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, + return ret; + } + ++ /* PT BOs may be created during amdgpu_vm_bo_map() call, ++ * so we have to validate the newly created PT BOs. ++ */ ++ ret = validate_pt_pd_bos(entry->bo_va->vm); ++ if (ret != 0) { ++ pr_err("validate_pt_pd_bos() failed\n"); ++ return ret; ++ } ++ + ret = update_gpuvm_pte(adev, entry, sync); + if (ret != 0) { + pr_err("update_gpuvm_pte() failed\n"); +@@ -1330,7 +1333,6 @@ int amdgpu_amdkfd_gpuvm_map_memory_to_gpu( + } + } + +- + list_for_each_entry(entry, &mem->bo_va_list, bo_list) { + if (entry->bo_va->vm == vm && !entry->is_mapped) { + if (mem->evicted) { +-- +2.7.4 + |