diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1490-drm-amdkfd-use-a-high-priority-workqueue-for-IH-work.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1490-drm-amdkfd-use-a-high-priority-workqueue-for-IH-work.patch | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1490-drm-amdkfd-use-a-high-priority-workqueue-for-IH-work.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1490-drm-amdkfd-use-a-high-priority-workqueue-for-IH-work.patch deleted file mode 100644 index 9705cbb3..00000000 --- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1490-drm-amdkfd-use-a-high-priority-workqueue-for-IH-work.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 60bb9f832fdf2df669116f1c6c1417b166e55797 Mon Sep 17 00:00:00 2001 -From: Andres Rodriguez <andres.rodriguez@amd.com> -Date: Fri, 19 Aug 2016 20:06:26 -0400 -Subject: [PATCH 1490/4131] drm/amdkfd: use a high priority workqueue for IH - work - -In systems under heavy load the IH work may experience significant -scheduling delays. - -Under load + system workqueue: - Max Latency: 7.023695 ms - Avg Latency: 0.263994 ms - -Under load + high priority workqueue: - Max Latency: 1.162568 ms - Avg Latency: 0.163213 ms - -Further work is required to measure the impact of per-cpu settings on IH -performance. - -Change-Id: I6e871451f8d8a4817cef0b850c4e4722f114ffa3 -Signed-off-by: Andres Rodriguez <andres.rodriguez@amd.com> ---- - drivers/gpu/drm/amd/amdkfd/kfd_device.c | 2 +- - drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 3 ++- - drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 + - 3 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c -index 61c22a6..69b08a9 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c -@@ -686,7 +686,7 @@ void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) - if (kfd->interrupts_active - && interrupt_is_wanted(kfd, ih_ring_entry) - && enqueue_ih_ring_entry(kfd, ih_ring_entry)) -- schedule_work(&kfd->interrupt_work); -+ queue_work(kfd->ih_wq, &kfd->interrupt_work); - - spin_unlock(&kfd->interrupt_lock); - } -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c -index 495e1ba..c939856 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c -@@ -61,6 +61,7 @@ int kfd_interrupt_init(struct kfd_dev *kfd) - return r; - } - -+ kfd->ih_wq = alloc_workqueue("KFD IH", WQ_HIGHPRI, 1); - spin_lock_init(&kfd->interrupt_lock); - - INIT_WORK(&kfd->interrupt_work, interrupt_wq); -@@ -95,7 +96,7 @@ void kfd_interrupt_exit(struct kfd_dev *kfd) - * work-queue items that will access interrupt_ring. New work items - * can't be created because we stopped interrupt handling above. - */ -- flush_work(&kfd->interrupt_work); -+ flush_workqueue(kfd->ih_wq); - - kfifo_free(&kfd->ih_fifo); - } -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -index 0cff1f0..2bfe761 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -@@ -249,6 +249,7 @@ struct kfd_dev { - - /* Interrupts */ - struct kfifo ih_fifo; -+ struct workqueue_struct *ih_wq; - struct work_struct interrupt_work; - spinlock_t interrupt_lock; - --- -2.7.4 - |