aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1157-drm-amdkfd-Fix-oversubscription-accounting.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1157-drm-amdkfd-Fix-oversubscription-accounting.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1157-drm-amdkfd-Fix-oversubscription-accounting.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1157-drm-amdkfd-Fix-oversubscription-accounting.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1157-drm-amdkfd-Fix-oversubscription-accounting.patch
new file mode 100644
index 00000000..b1979527
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1157-drm-amdkfd-Fix-oversubscription-accounting.patch
@@ -0,0 +1,54 @@
+From 3f995deeadf194eeb192a41b7079123fd7daeee8 Mon Sep 17 00:00:00 2001
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+Date: Thu, 30 Jun 2016 11:33:27 -0400
+Subject: [PATCH 1157/4131] drm/amdkfd: Fix oversubscription accounting
+
+Don't count RDMA queues towards compute HQD oversubscription when
+deciding whether to create a chained runlist.
+
+Patch by Jay Cornwall <Jay.Cornwall@amd.com>
+
+Bug: SWDEV-96226
+
+Change-Id: I3943378eb1ed959b82126285a178b037591b39f9
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+
+ Conflicts:
+ drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+index 566b990..ea0dcd1 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+@@ -55,7 +55,7 @@ static void pm_calc_rlib_size(struct packet_manager *pm,
+ unsigned int *rlib_size,
+ bool *over_subscription)
+ {
+- unsigned int process_count, queue_count;
++ unsigned int process_count, queue_count, compute_queue_count;
+ unsigned int map_queue_size;
+ unsigned int max_proc_per_quantum = 1;
+
+@@ -65,6 +65,7 @@ static void pm_calc_rlib_size(struct packet_manager *pm,
+
+ process_count = pm->dqm->processes_count;
+ queue_count = pm->dqm->queue_count;
++ compute_queue_count = queue_count - pm->dqm->sdma_queue_count;
+
+ /* check if there is over subscription
+ * Note: the arbitration between the number of VMIDs and
+@@ -78,7 +79,7 @@ static void pm_calc_rlib_size(struct packet_manager *pm,
+ max_proc_per_quantum = dev->max_proc_per_quantum;
+
+ if ((process_count > max_proc_per_quantum) ||
+- queue_count > get_queues_num(pm->dqm)) {
++ compute_queue_count > get_queues_num(pm->dqm)) {
+ *over_subscription = true;
+ pr_debug("kfd: over subscribed runlist\n");
+ }
+--
+2.7.4
+