diff options
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.patch | 54 |
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 + |