aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1236-drm-amdkfd-Print-rate-limited-messages-for-all-evict.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1236-drm-amdkfd-Print-rate-limited-messages-for-all-evict.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/1236-drm-amdkfd-Print-rate-limited-messages-for-all-evict.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1236-drm-amdkfd-Print-rate-limited-messages-for-all-evict.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1236-drm-amdkfd-Print-rate-limited-messages-for-all-evict.patch
new file mode 100644
index 00000000..f8c27466
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1236-drm-amdkfd-Print-rate-limited-messages-for-all-evict.patch
@@ -0,0 +1,54 @@
+From c3b6167ab9d36b52fb56e02fe767229e8f6c4546 Mon Sep 17 00:00:00 2001
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+Date: Tue, 28 Feb 2017 15:19:53 -0500
+Subject: [PATCH 1236/4131] drm/amdkfd: Print rate-limited messages for all
+ evictions
+
+This can probably be replaced with traces later on. For now this should
+help us track down unexpected evictions and give user mode teams an
+indication when frequent evictions are responsible for performance
+problems.
+
+Change-Id: Ia594c9a4c8ebe095b69a853ce5550ffb03fa6b02
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+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 bb7fdc3..fe99477 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+@@ -517,6 +517,7 @@ int process_evict_queues(struct device_queue_manager *dqm,
+ {
+ struct queue *q, *next;
+ struct mqd_manager *mqd;
++ struct kfd_process_device *pdd;
+ int retval = 0;
+
+ BUG_ON(!dqm || !qpd);
+@@ -526,6 +527,11 @@ int process_evict_queues(struct device_queue_manager *dqm,
+ mutex_unlock(&dqm->lock);
+ return 0;
+ }
++
++ pdd = qpd_to_pdd(qpd);
++ pr_info_ratelimited("Evicting PASID %u queues\n",
++ pdd->process->pasid);
++
+ /* unactivate all active queues on the qpd */
+ list_for_each_entry_safe(q, next, &qpd->queues_list, list) {
+ mqd = dqm->ops.get_mqd_manager(dqm,
+@@ -579,6 +585,9 @@ int process_restore_queues(struct device_queue_manager *dqm,
+ goto out_unlock;
+ }
+
++ pr_info_ratelimited("Restoring PASID %u queues\n",
++ pdd->process->pasid);
++
+ /* Update PD Base in QPD */
+ qpd->page_table_base = pd_base;
+ pr_debug("Updated PD address to 0x%08x in %s\n", pd_base, __func__);
+--
+2.7.4
+