Hi Dave and Sima, Please pull the drm-xe-fixes for this week targeting v6.9-rc3. This is a little late in the week as I was waiting a critical fix to be applied to get our CI back. This is mainly due to some stress tests creating hundreds of exec queues and that not playing nice with the workqueue changes introduced in v6.9. That shouldn't be the normal use case but was causing CI to abort further tests. Other changes include fixes around rebinding and TLB invalidation. thanks Lucas De Marchi drm-xe-fixes-2024-04-04: - Stop using system_unbound_wq for preempt fences, as this can cause starvation when reaching more than max_active defined by workqueue - Fix saving unordered rebinding fences by attaching them as kernel feces to the vm's resv - Fix TLB invalidation fences completing out of order - Move rebind TLB invalidation to the ring ops to reduce the latency The following changes since commit 39cd87c4eb2b893354f3b850f916353f2658ae6f: Linux 6.9-rc2 (2024-03-31 14:32:39 -0700) are available in the Git repository at: https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-fixes-2024-04-04 for you to fetch changes up to 77a011012d7d8b98368a763bf74317c6d5ce00f1: drm/xe: Use ordered wq for preempt fence waiting (2024-04-04 08:32:34 -0500) ---------------------------------------------------------------- - Stop using system_unbound_wq for preempt fences, as this can cause starvation when reaching more than max_active defined by workqueue - Fix saving unordered rebinding fences by attaching them as kernel feces to the vm's resv - Fix TLB invalidation fences completing out of order - Move rebind TLB invalidation to the ring ops to reduce the latency ---------------------------------------------------------------- Matthew Brost (1): drm/xe: Use ordered wq for preempt fence waiting Thomas Hellström (4): drm/xe: Use ring ops TLB invalidation for rebinds drm/xe: Rework rebinding drm/xe: Make TLB invalidation fences unordered drm/xe: Move vma rebinding to the drm_exec locking loop drivers/gpu/drm/xe/xe_device.c | 11 ++- drivers/gpu/drm/xe/xe_device_types.h | 3 + drivers/gpu/drm/xe/xe_exec.c | 79 ++------------------ drivers/gpu/drm/xe/xe_exec_queue_types.h | 5 ++ drivers/gpu/drm/xe/xe_gt_pagefault.c | 3 +- drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 1 - drivers/gpu/drm/xe/xe_gt_types.h | 7 -- drivers/gpu/drm/xe/xe_preempt_fence.c | 2 +- drivers/gpu/drm/xe/xe_pt.c | 25 +++++-- drivers/gpu/drm/xe/xe_ring_ops.c | 11 +-- drivers/gpu/drm/xe/xe_sched_job.c | 10 +++ drivers/gpu/drm/xe/xe_sched_job_types.h | 2 + drivers/gpu/drm/xe/xe_vm.c | 110 +++++++++++++++++----------- drivers/gpu/drm/xe/xe_vm.h | 8 +- drivers/gpu/drm/xe/xe_vm_types.h | 8 +- 15 files changed, 140 insertions(+), 145 deletions(-)