aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1622-drm-amdgpu-stop-evicting-busy-PDs-PTs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1622-drm-amdgpu-stop-evicting-busy-PDs-PTs.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1622-drm-amdgpu-stop-evicting-busy-PDs-PTs.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1622-drm-amdgpu-stop-evicting-busy-PDs-PTs.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1622-drm-amdgpu-stop-evicting-busy-PDs-PTs.patch
new file mode 100644
index 00000000..3c240154
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1622-drm-amdgpu-stop-evicting-busy-PDs-PTs.patch
@@ -0,0 +1,37 @@
+From 3aab708ce7e4a5b3bdcb00a652f8df935dd67fdb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Wed, 7 Nov 2018 13:55:01 +0100
+Subject: [PATCH 1622/2940] drm/amdgpu: stop evicting busy PDs/PTs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Otherwise we won't be able to cleanly handle page faults.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index 822add55c77d..3ec146b6b9c8 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -1510,6 +1510,13 @@ static bool amdgpu_ttm_bo_eviction_valuable(struct ttm_buffer_object *bo,
+ struct dma_fence *f;
+ int i;
+
++ /* Don't evict VM page tables while they are busy, otherwise we can't
++ * cleanly handle page faults.
++ */
++ if (bo->type == ttm_bo_type_kernel &&
++ !reservation_object_test_signaled_rcu(bo->resv, true))
++ return false;
++
+ /* If bo is a KFD BO, check if the bo belongs to the current process.
+ * If true, then return false as any KFD process needs all its BOs to
+ * be resident to run successfully
+--
+2.17.1
+