aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2819-drm-amdkfd-Print-a-warning-when-the-runlist-becomes-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2819-drm-amdkfd-Print-a-warning-when-the-runlist-becomes-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2819-drm-amdkfd-Print-a-warning-when-the-runlist-becomes-.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2819-drm-amdkfd-Print-a-warning-when-the-runlist-becomes-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2819-drm-amdkfd-Print-a-warning-when-the-runlist-becomes-.patch
new file mode 100644
index 00000000..42ba4896
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2819-drm-amdkfd-Print-a-warning-when-the-runlist-becomes-.patch
@@ -0,0 +1,56 @@
+From f2b65e424976a876b4fec4de924eb577ddb1e5c6 Mon Sep 17 00:00:00 2001
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+Date: Thu, 20 Jun 2019 15:37:37 -0400
+Subject: [PATCH 2819/2940] drm/amdkfd: Print a warning when the runlist
+ becomes oversubscribed
+
+Oversubscription of queues or processes results in poor performance
+mostly because HWS blinbly schedules busy and idle queues, resulting
+in poor occupancy if many queues are idle.
+
+Let users know with a warning message when transitioning from a
+non-oversubscribed to an oversubscribed runlist.
+
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Reviewed-by: Oak Zeng <Oak.Zeng@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 6 +++++-
+ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 +
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+index c72c8f5fd54c..ccf6b2310316 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+@@ -203,11 +203,15 @@ static int pm_create_runlist_ib(struct packet_manager *pm,
+
+ pr_debug("Finished map process and queues to runlist\n");
+
+- if (is_over_subscription)
++ if (is_over_subscription) {
++ if (!pm->is_over_subscription)
++ pr_warn("Runlist is getting oversubscribed. Expect reduced ROCm performance.\n");
+ retval = pm->pmf->runlist(pm, &rl_buffer[rl_wptr],
+ *rl_gpu_addr,
+ alloc_size_bytes / sizeof(uint32_t),
+ true);
++ }
++ pm->is_over_subscription = is_over_subscription;
+
+ for (i = 0; i < alloc_size_bytes / sizeof(uint32_t); i++)
+ pr_debug("0x%2X ", rl_buffer[i]);
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+index dc6b3eadc65a..a399914782c4 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+@@ -1056,6 +1056,7 @@ struct packet_manager {
+ bool allocated;
+ struct kfd_mem_obj *ib_buffer_obj;
+ unsigned int ib_size_bytes;
++ bool is_over_subscription;
+
+ const struct packet_manager_funcs *pmf;
+ };
+--
+2.17.1
+