diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0218-drm-amdgpu-fix-use-bulk-moves-for-efficient-VM-LRU-h.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0218-drm-amdgpu-fix-use-bulk-moves-for-efficient-VM-LRU-h.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0218-drm-amdgpu-fix-use-bulk-moves-for-efficient-VM-LRU-h.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0218-drm-amdgpu-fix-use-bulk-moves-for-efficient-VM-LRU-h.patch new file mode 100644 index 00000000..d8fc6ab7 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0218-drm-amdgpu-fix-use-bulk-moves-for-efficient-VM-LRU-h.patch @@ -0,0 +1,52 @@ +From 550e72886384133258edf14d10ea262f721af974 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 30 Aug 2018 10:04:53 +0200 +Subject: [PATCH 0218/2940] drm/amdgpu: fix "use bulk moves for efficient VM + LRU handling" v2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +First step to fix the LRU corruption, we accidentially tried to move things +on the LRU after dropping the lock. + +Change-Id: Ie325e5c245c8d7f711ab0f862f3812a6667e73a5 +Signed-off-by: Christian König <christian.koenig@amd.com> +Tested-by: Michel Dänzer <michel.daenzer@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +index f8994e766e57..caabaa8e13c0 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +@@ -1246,6 +1246,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, + ring = to_amdgpu_ring(entity->rq->sched); + amdgpu_ring_priority_get(ring, priority); + ++ amdgpu_vm_move_to_lru_tail(p->adev, &fpriv->vm); ++ + ttm_eu_fence_buffer_objects(&p->ticket, &p->validated, p->fence); + amdgpu_mn_unlock(p->mn); + +@@ -1267,7 +1269,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) + union drm_amdgpu_cs *cs = data; + struct amdgpu_cs_parser parser = {}; + bool reserved_buffers = false; +- struct amdgpu_fpriv *fpriv; + int i, r; + + if (!adev->accel_working) +@@ -1312,8 +1313,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) + + r = amdgpu_cs_submit(&parser, cs); + +- fpriv = filp->driver_priv; +- amdgpu_vm_move_to_lru_tail(adev, &fpriv->vm); + out: + amdgpu_cs_parser_fini(&parser, r, reserved_buffers); + return r; +-- +2.17.1 + |