diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0503-drm-amdgpu-remove-entity-idle-timeout-v2.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0503-drm-amdgpu-remove-entity-idle-timeout-v2.patch | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/common/recipes-kernel/linux/files/0503-drm-amdgpu-remove-entity-idle-timeout-v2.patch b/common/recipes-kernel/linux/files/0503-drm-amdgpu-remove-entity-idle-timeout-v2.patch deleted file mode 100644 index 2cab817d..00000000 --- a/common/recipes-kernel/linux/files/0503-drm-amdgpu-remove-entity-idle-timeout-v2.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 062c7fb3ebb42d2a50d4644b3e49e731361e6951 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> -Date: Fri, 21 Aug 2015 15:46:43 +0200 -Subject: [PATCH 0503/1050] drm/amdgpu: remove entity idle timeout v2 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Removing the entity from scheduling can deadlock the whole system. -Wait forever till the remaining IBs are scheduled. - -v2: fix comment as well - -Signed-off-by: Christian König <christian.koenig@amd.com> -Acked-by: Alex Deucher <alexander.deucher@amd.com> -Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> -Reviewed-by: Chunming Zhou <david1.zhou@amd.com> (v1) ---- - drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 18 +++++------------- - drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 6 ++---- - 2 files changed, 7 insertions(+), 17 deletions(-) - -diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -index 2df6f17..ca22d90 100644 ---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -@@ -167,32 +167,24 @@ static bool amd_sched_entity_is_idle(struct amd_sched_entity *entity) - * @sched Pointer to scheduler instance - * @entity The pointer to a valid scheduler entity - * -- * return 0 if succeed. negative error code on failure -+ * Cleanup and free the allocated resources. - */ --int amd_sched_entity_fini(struct amd_gpu_scheduler *sched, -- struct amd_sched_entity *entity) -+void amd_sched_entity_fini(struct amd_gpu_scheduler *sched, -+ struct amd_sched_entity *entity) - { - struct amd_sched_rq *rq = entity->belongto_rq; -- long r; - - if (!amd_sched_entity_is_initialized(sched, entity)) -- return 0; -+ return; - - /** - * The client will not queue more IBs during this fini, consume existing - * queued IBs - */ -- r = wait_event_timeout(entity->wait_queue, -- amd_sched_entity_is_idle(entity), -- msecs_to_jiffies(AMD_GPU_WAIT_IDLE_TIMEOUT_IN_MS)); -- -- if (r <= 0) -- DRM_INFO("Entity %p is in waiting state during fini\n", -- entity); -+ wait_event(entity->wait_queue, amd_sched_entity_is_idle(entity)); - - amd_sched_rq_remove_entity(rq, entity); - kfifo_free(&entity->job_queue); -- return r; - } - - /** -diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -index 44909b1..128f908 100644 ---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -@@ -27,8 +27,6 @@ - #include <linux/kfifo.h> - #include <linux/fence.h> - --#define AMD_GPU_WAIT_IDLE_TIMEOUT_IN_MS 3000 -- - struct amd_gpu_scheduler; - struct amd_sched_rq; - -@@ -124,8 +122,8 @@ int amd_sched_entity_init(struct amd_gpu_scheduler *sched, - struct amd_sched_entity *entity, - struct amd_sched_rq *rq, - uint32_t jobs); --int amd_sched_entity_fini(struct amd_gpu_scheduler *sched, -- struct amd_sched_entity *entity); -+void amd_sched_entity_fini(struct amd_gpu_scheduler *sched, -+ struct amd_sched_entity *entity); - int amd_sched_entity_push_job(struct amd_sched_job *sched_job); - - struct amd_sched_fence *amd_sched_fence_create( --- -1.9.1 - |