aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1261-drm-amdkfd-Fix-MQD-modification-race-during-eviction.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1261-drm-amdkfd-Fix-MQD-modification-race-during-eviction.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1261-drm-amdkfd-Fix-MQD-modification-race-during-eviction.patch51
1 files changed, 0 insertions, 51 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1261-drm-amdkfd-Fix-MQD-modification-race-during-eviction.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1261-drm-amdkfd-Fix-MQD-modification-race-during-eviction.patch
deleted file mode 100644
index b94f6f00..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1261-drm-amdkfd-Fix-MQD-modification-race-during-eviction.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 3a6a24cd08c1a136b66864a084a18f8ac9501319 Mon Sep 17 00:00:00 2001
-From: Jay Cornwall <Jay.Cornwall@amd.com>
-Date: Wed, 19 Apr 2017 13:11:30 -0500
-Subject: [PATCH 1261/4131] drm/amdkfd: Fix MQD modification race during
- eviction
-
-The eviction path invokes update_mqd before preempting the scheduler
-which may be using the MQD concurrently. This leads to a race in which
-the scheduler sees partial values of MQD registers when mapping them
-to the HQD.
-
-Do not modify the MQD during eviction (or restore). Instead just mark
-q->is_active directly. Fixes CP hangs under stress testing.
-
-Change-Id: I6a2395cf8ec307048894e32d3a14851f136ed510
-Signed-off-by: Jay Cornwall <Jay.Cornwall@amd.com>
----
- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
-index dcdc380..24ef621 100644
---- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
-+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
-@@ -629,10 +629,11 @@ int process_evict_queues(struct device_queue_manager *dqm,
- continue;
- }
- /* if the queue is not active anyway, it is not evicted */
-- if (q->properties.is_active == true)
-+ if (q->properties.is_active == true) {
- q->properties.is_evicted = true;
-+ q->properties.is_active = false;
-+ }
-
-- retval = mqd->update_mqd(mqd, q->mqd, &q->properties);
- if (is_queue_nocpsch(dqm, q) &&
- q->properties.is_evicted)
- retval = mqd->destroy_mqd(mqd, q->mqd,
-@@ -700,7 +701,8 @@ int process_restore_queues(struct device_queue_manager *dqm,
- }
- if (q->properties.is_evicted) {
- q->properties.is_evicted = false;
-- retval = mqd->update_mqd(mqd, q->mqd, &q->properties);
-+ q->properties.is_active = true;
-+
- if (dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS &&
- (q->properties.type == KFD_QUEUE_TYPE_COMPUTE ||
- q->properties.type == KFD_QUEUE_TYPE_SDMA))
---
-2.7.4
-