diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1563-drm-amdgpu-drop-the-huge-page-flag.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1563-drm-amdgpu-drop-the-huge-page-flag.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1563-drm-amdgpu-drop-the-huge-page-flag.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1563-drm-amdgpu-drop-the-huge-page-flag.patch new file mode 100644 index 00000000..50c876cd --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1563-drm-amdgpu-drop-the-huge-page-flag.patch @@ -0,0 +1,73 @@ +From c6dff918baec7b4a8fafecfc5108429bfba33345 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Fri, 1 Feb 2019 17:11:29 +0100 +Subject: [PATCH 1563/2940] drm/amdgpu: drop the huge page flag +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Not needed any more since we now free PDs/PTs on demand. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +Acked-by: Huang Rui <ray.huang@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 14 +------------- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 1 - + 2 files changed, 1 insertion(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +index 2717c3b447f6..371f3e07a67e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +@@ -1345,10 +1345,6 @@ static void amdgpu_vm_update_pde(struct amdgpu_pte_update_params *params, + uint64_t pde, pt, flags; + unsigned level; + +- /* Don't update huge pages here */ +- if (entry->huge) +- return; +- + for (level = 0, pbo = bo->parent; pbo; ++level) + pbo = pbo->parent; + +@@ -1604,13 +1600,6 @@ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params, + continue; + } + +- /* If it isn't already handled it can't be a huge page */ +- if (cursor.entry->huge) { +- /* Add the entry to the relocated list to update it. */ +- cursor.entry->huge = false; +- amdgpu_vm_bo_relocated(&cursor.entry->base); +- } +- + shift = amdgpu_vm_level_shift(adev, cursor.level); + parent_shift = amdgpu_vm_level_shift(adev, cursor.level - 1); + if (adev->asic_type < CHIP_VEGA10) { +@@ -1669,9 +1658,8 @@ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params, + } while (frag_start < entry_end); + + if (amdgpu_vm_pt_descendant(adev, &cursor)) { +- /* Mark all child entries as huge */ ++ /* Free all child entries */ + while (cursor.pfn < frag_start) { +- cursor.entry->huge = true; + amdgpu_vm_free_pts(adev, params->vm, &cursor); + amdgpu_vm_pt_next(adev, &cursor); + } +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +index 540d89503c23..a590ec84650e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +@@ -140,7 +140,6 @@ struct amdgpu_vm_bo_base { + + struct amdgpu_vm_pt { + struct amdgpu_vm_bo_base base; +- bool huge; + + /* array of page tables, one for each directory entry */ + struct amdgpu_vm_pt *entries; +-- +2.17.1 + |