aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1563-drm-amdgpu-drop-the-huge-page-flag.patch
diff options
context:
space:
mode:
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.patch73
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
+