aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4176-drm-amdgpu-use-ctx-bytes_moved.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4176-drm-amdgpu-use-ctx-bytes_moved.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4176-drm-amdgpu-use-ctx-bytes_moved.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4176-drm-amdgpu-use-ctx-bytes_moved.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4176-drm-amdgpu-use-ctx-bytes_moved.patch
new file mode 100644
index 00000000..6f2d6529
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4176-drm-amdgpu-use-ctx-bytes_moved.patch
@@ -0,0 +1,54 @@
+From a9aaf2cea1b7d1e084b2580c0a019d509991d1d3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Thu, 5 Apr 2018 14:46:41 +0200
+Subject: [PATCH 4176/5725] drm/amdgpu: use ctx bytes_moved
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Instead of the global (inaccurate) counter.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 8596b38..19265a9 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -412,7 +412,6 @@ static bool amdgpu_cs_try_evict(struct amdgpu_cs_parser *p,
+ struct amdgpu_bo_list_entry *candidate = p->evictable;
+ struct amdgpu_bo *bo = candidate->robj;
+ struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
+- u64 initial_bytes_moved, bytes_moved;
+ bool update_bytes_moved_vis;
+ uint32_t other;
+
+@@ -436,18 +435,15 @@ static bool amdgpu_cs_try_evict(struct amdgpu_cs_parser *p,
+ continue;
+
+ /* Good we can try to move this BO somewhere else */
+- amdgpu_ttm_placement_from_domain(bo, other);
+ update_bytes_moved_vis =
+ adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&
+ bo->tbo.mem.mem_type == TTM_PL_VRAM &&
+ bo->tbo.mem.start < adev->gmc.visible_vram_size >> PAGE_SHIFT;
+- initial_bytes_moved = atomic64_read(&adev->num_bytes_moved);
++ amdgpu_ttm_placement_from_domain(bo, other);
+ r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
+- bytes_moved = atomic64_read(&adev->num_bytes_moved) -
+- initial_bytes_moved;
+- p->bytes_moved += bytes_moved;
++ p->bytes_moved += ctx.bytes_moved;
+ if (update_bytes_moved_vis)
+- p->bytes_moved_vis += bytes_moved;
++ p->bytes_moved_vis += ctx.bytes_moved;
+
+ if (unlikely(r))
+ break;
+--
+2.7.4
+