[PULL] drm-xe-fixes

Lucas De Marchi
2024-04-04T14:50:47Z

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(-)