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)
committerMatthew Brost <matthew.brost@intel.com>
Fri, 15 Nov 2024 19:15:31 +0000 (11:15 -0800)
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
drivers/gpu/drm/xe/xe_device.c

index 0e2dd69..06d6db8 100644 (file)
@@ -350,7 +350,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);