drm/xe: Mark preempt fence workqueue as reclaim
authorMatthew Brost <matthew.brost@intel.com>
Wed, 13 Nov 2024 17:17:51 +0000 (09:17 -0800)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 21 Nov 2024 16:16:38 +0000 (17:16 +0100)
Preempt fences are in the path of reclaim, and we signal these fences in
the preempt workqueue. With that, we need to mark the preempt fence
workqueue with reclaim so that this workqueue can make forward progress
during reclaim.

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241113171751.1677784-1-matthew.brost@intel.com
(cherry picked from commit 15cf53ece41748a102f4b5ee26947c2ec059bf95)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/xe_device.c

index 51bb9d8..a6f0341 100644 (file)
@@ -360,7 +360,8 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
        INIT_LIST_HEAD(&xe->pinned.external_vram);
        INIT_LIST_HEAD(&xe->pinned.evicted);
 
-       xe->preempt_fence_wq = alloc_ordered_workqueue("xe-preempt-fence-wq", 0);
+       xe->preempt_fence_wq = alloc_ordered_workqueue("xe-preempt-fence-wq",
+                                                      WQ_MEM_RECLAIM);
        xe->ordered_wq = alloc_ordered_workqueue("xe-ordered-wq", 0);
        xe->unordered_wq = alloc_workqueue("xe-unordered-wq", 0, 0);
        xe->destroy_wq = alloc_workqueue("xe-destroy-wq", 0, 0);