[Intel-xe] [PATCH 00/20] Sync DRM scheduler with upstream (with fixups)

Rodrigo Vivi rodrigo.vivi at intel.com
Thu Nov 9 14:53:18 UTC 2023


This work here is based on Matt's series:

https://patchwork.freedesktop.org/series/126029/

But updated to properly remove the old patches, cherry-pick the
new ones and adding fixup versions to the original xe patches.

The only modification is that for a cleaner cherry-pick, I
had to take couple more patches from drm-misc where
the DRM_SCHED_PRIORITY_UNSET was removed so, we are now
adding a local XE_SCHED_PRIORITY_UNSET for execlists.

After the clean-up rebases, with all the old patches removed,
the new ones added to the bottom and the fixup squashed to
the original, our drm-xe-next will look like this:

https://gitlab.freedesktop.org/rodrigovivi/drm-xe/-/commits/drm-sched-final-rebase

For reference, the branch with these reverts and fixups is
https://gitlab.freedesktop.org/rodrigovivi/drm-xe/-/tree/drm-sched-final-rebase-reverts-and-fixups

The git diff between these 2 branches is empty.

The git diff between any of these and the branch with Matt's
series applied is limited to the cases on drivers/gpu/drm/xe/xe_execlist.c

- DRM_SCHED_PRIORITY_UNSET
+ DRM_XE_SCHED_PRIORITY_UNSET

as explained above.

Steps to create fixup patches like these:
1. Get a final reference code (where you want to achieve).
2. Rebase removing the outdated patches, adding the new ones and fix the conflicts.
3. Create the fixup patches while solving the conflicts or later with the result
of the git range-diff
4. ensure that git range-diff between the brances are reasonable.
5. ensure empty git diff between the branches that you want.
6. send a series like this.
7. Now we wait for CI results.

Thanks,
Rodrigo.

Christian König (1):
  dma-buf: add dma_fence_timestamp helper

Luben Tuikov (2):
  gpu/drm: Eliminate DRM_SCHED_PRIORITY_UNSET
  drm/sched: Convert the GPU scheduler to variable number of run-queues

Matthew Brost (8):
  drm/sched: Add drm_sched_wqueue_* helpers
  drm/sched: Convert drm scheduler to use a work queue rather than
    kthread
  drm/sched: Split free_job into own work item
  drm/sched: Add drm_sched_start_timeout_unlocked helper
  drm/sched: Add a helper to queue TDR immediately
  fixup! drm/xe: Introduce a new DRM driver for Intel GPUs
  fixup! drm/xe: Fix potential deadlock handling page faults
  drm/xe: Use pool of ordered wq for GuC submission

Rodrigo Vivi (9):
  Revert "drm/xe: Use DRM_SCHED_POLICY_SINGLE_ENTITY mode"
  Revert "drm/sched: Add DRM_SCHED_POLICY_SINGLE_ENTITY scheduling
    policy"
  Revert "drm/sched: Move schedule policy to scheduler"
  Revert "drm/sched: Add helper to set TDR timeout"
  Revert "drm/sched: Submit job before starting TDR"
  Revert "drm/sched: Start run wq before TDR in drm_sched_start"
  Revert "drm/sched: Add generic scheduler message interface"
  Revert "drm/sched: Convert drm scheduler to use a work queue rather
    than kthread"
  Revert "drm/sched: Don't store self-dependencies"

 drivers/dma-buf/dma-fence-unwrap.c            |  13 +-
 drivers/dma-buf/sync_file.c                   |   9 +-
 .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c   |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c       |   3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c   |  15 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  14 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c       |   4 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c       |   4 +-
 drivers/gpu/drm/lima/lima_sched.c             |   7 +-
 drivers/gpu/drm/msm/adreno/adreno_device.c    |   6 +-
 drivers/gpu/drm/msm/msm_ringbuffer.c          |   4 +-
 drivers/gpu/drm/nouveau/nouveau_sched.c       |   4 +-
 drivers/gpu/drm/panfrost/panfrost_job.c       |   4 +-
 drivers/gpu/drm/scheduler/sched_entity.c      |  97 +---
 drivers/gpu/drm/scheduler/sched_fence.c       |   2 +-
 drivers/gpu/drm/scheduler/sched_main.c        | 477 +++++++++---------
 drivers/gpu/drm/v3d/v3d_sched.c               |  20 +-
 drivers/gpu/drm/xe/Makefile                   |   1 +
 drivers/gpu/drm/xe/xe_exec_queue_types.h      |   3 +
 drivers/gpu/drm/xe/xe_execlist.c              |  21 +-
 drivers/gpu/drm/xe/xe_gpu_scheduler.c         | 101 ++++
 drivers/gpu/drm/xe/xe_gpu_scheduler.h         |  73 +++
 drivers/gpu/drm/xe/xe_gpu_scheduler_types.h   |  58 +++
 drivers/gpu/drm/xe/xe_guc_exec_queue_types.h  |   8 +-
 drivers/gpu/drm/xe/xe_guc_submit.c            | 212 +++++---
 drivers/gpu/drm/xe/xe_guc_types.h             |   7 +
 drivers/gpu/drm/xe/xe_migrate.c               |   2 +-
 drivers/gpu/drm/xe/xe_trace.h                 |  13 +-
 include/drm/gpu_scheduler.h                   |  90 +---
 include/linux/dma-fence.h                     |  19 +
 30 files changed, 763 insertions(+), 530 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_gpu_scheduler.c
 create mode 100644 drivers/gpu/drm/xe/xe_gpu_scheduler.h
 create mode 100644 drivers/gpu/drm/xe/xe_gpu_scheduler_types.h

-- 
2.41.0



More information about the Intel-xe mailing list