diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2237-drm-amdgpu-use-the-new-TTM-bytes-moved-counter-v2.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2237-drm-amdgpu-use-the-new-TTM-bytes-moved-counter-v2.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2237-drm-amdgpu-use-the-new-TTM-bytes-moved-counter-v2.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2237-drm-amdgpu-use-the-new-TTM-bytes-moved-counter-v2.patch new file mode 100644 index 00000000..4f93930b --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2237-drm-amdgpu-use-the-new-TTM-bytes-moved-counter-v2.patch @@ -0,0 +1,95 @@ +From 466ab2e057e6aa4e08bc4fad633ae2cf96553275 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 27 Apr 2017 18:20:47 +0200 +Subject: [PATCH 2237/4131] drm/amdgpu: use the new TTM bytes moved counter v2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Instead of the global statistics use the per context bytes moved counter. + +v2: rebased + +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> +Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> +Tested-by: Michel Dänzer <michel.daenzer@amd.com> +Acked-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 9 +++------ + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 +++------- + 2 files changed, 6 insertions(+), 13 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +index 050e62f..3bc81e9 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +@@ -354,7 +354,6 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p, + { + struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); + struct ttm_operation_ctx ctx = { true, false }; +- u64 initial_bytes_moved, bytes_moved; + uint32_t domain; + int r; + +@@ -384,15 +383,13 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p, + + retry: + amdgpu_ttm_placement_from_domain(bo, domain); +- initial_bytes_moved = atomic64_read(&adev->num_bytes_moved); + 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 (adev->mc.visible_vram_size < adev->mc.real_vram_size && + bo->tbo.mem.mem_type == TTM_PL_VRAM && + bo->tbo.mem.start < adev->mc.visible_vram_size >> PAGE_SHIFT) +- p->bytes_moved_vis += bytes_moved; ++ p->bytes_moved_vis += ctx.bytes_moved; + + if (unlikely(r == -ENOMEM) && domain != bo->allowed_domains) { + domain = bo->allowed_domains; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +index 1c0711b..0c1da87 100755 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +@@ -357,7 +357,6 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, + struct amdgpu_bo *bo; + enum ttm_bo_type type; + unsigned long page_align; +- u64 initial_bytes_moved, bytes_moved; + size_t acc_size; + int r; + +@@ -431,22 +430,19 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, + bo->tbo.bdev = &adev->mman.bdev; + amdgpu_ttm_placement_from_domain(bo, domain); + +- initial_bytes_moved = atomic64_read(&adev->num_bytes_moved); +- /* Kernel allocation are uninterruptible */ + r = ttm_bo_init_reserved(&adev->mman.bdev, &bo->tbo, size, type, + &bo->placement, page_align, &ctx, NULL, + acc_size, sg, resv, &amdgpu_ttm_bo_destroy); + if (unlikely(r != 0)) + return r; + +- bytes_moved = atomic64_read(&adev->num_bytes_moved) - +- initial_bytes_moved; + if (adev->mc.visible_vram_size < adev->mc.real_vram_size && + bo->tbo.mem.mem_type == TTM_PL_VRAM && + bo->tbo.mem.start < adev->mc.visible_vram_size >> PAGE_SHIFT) +- amdgpu_cs_report_moved_bytes(adev, bytes_moved, bytes_moved); ++ amdgpu_cs_report_moved_bytes(adev, ctx.bytes_moved, ++ ctx.bytes_moved); + else +- amdgpu_cs_report_moved_bytes(adev, bytes_moved, 0); ++ amdgpu_cs_report_moved_bytes(adev, ctx.bytes_moved, 0); + + if (domain & AMDGPU_GEM_DOMAIN_DGMA && adev->ssg.enabled) + bo->tbo.ssg_can_map = true; +-- +2.7.4 + |