aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1572-drm-amdkfd-Preempt-static-queues-on-eviction.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1572-drm-amdkfd-Preempt-static-queues-on-eviction.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/1572-drm-amdkfd-Preempt-static-queues-on-eviction.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1572-drm-amdkfd-Preempt-static-queues-on-eviction.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1572-drm-amdkfd-Preempt-static-queues-on-eviction.patch
new file mode 100644
index 00000000..f1e3679f
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1572-drm-amdkfd-Preempt-static-queues-on-eviction.patch
@@ -0,0 +1,34 @@
+From e615f14d139a87de21e81acac29f3655b41cda81 Mon Sep 17 00:00:00 2001
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+Date: Wed, 18 Jan 2017 17:36:29 -0500
+Subject: [PATCH 1572/4131] drm/amdkfd: Preempt static queues on eviction
+
+Eviction needs to preempt all queues, including static queues.
+Processes in the GPU debugger will cause VM faults on evictions.
+
+This has potential side effects for the GPU debugger, and may not
+work at all for queues that have halted waves. A better solution
+is needed to ensure seamless preemption with the GPU debugger.
+
+Change-Id: I706c85666258d180adc06e0487d95fb1425a82bd
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+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 ffeea82..fc38dca 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+@@ -529,7 +529,7 @@ int process_evict_queues(struct device_queue_manager *dqm,
+ dqm->queue_count--;
+ }
+ if (dqm->sched_policy != KFD_SCHED_POLICY_NO_HWS)
+- retval = execute_queues_cpsch(dqm, false);
++ retval = execute_queues_cpsch(dqm, qpd->is_debug);
+
+ mutex_unlock(&dqm->lock);
+ return retval;
+--
+2.7.4
+