[PATCH v4 00/30] Refactor VM bind code

Matthew Brost matthew.brost at intel.com
Fri Mar 8 05:07:36 UTC 2024


Broken into roughly 5 parts:
Part 1: Prep patches, patches 1-14
Part 2: 1 jobs per VM bind IOCTL and error handling, patches 15-23
Part 3: CPU binds, patches 24-27
Part 4: Error injection for testing, patch 28
Part 5: PT exec queues 29-30

For reviewing, let's focus on part 1 for now and see if patches from
that part can start to get merged.

Tested with [1] and new error handling appears to be working. Also
tested with existing tests at every patch in the series and should be
working at every patch in the series.

Latest version includes some of Thomas's patches too [2].

Matt

[1] https://patchwork.freedesktop.org/series/129606/
[2] https://patchwork.freedesktop.org/series/130871/

Matthew Brost (28):
  drm/xe: Lock all gpuva ops during VM bind IOCTL
  drm/xe: Add ops_execute function which returns a fence
  drm/xe: Move migrate to prefetch to op_lock function
  drm/xe: Add struct xe_vma_ops abstraction
  drm/xe: Update xe_vm_rebind to use dummy VMA operations
  drm/xe: Simplify VM bind IOCTL error handling and cleanup
  drm/xe: Update pagefaults to use dummy VMA operations
  drm/xe: s/xe_tile_migrate_engine/xe_tile_migrate_exec_queue
  drm/xe: Add some members to xe_vma_ops
  drm/xe: Add vm_bind_ioctl_ops_install_fences helper
  drm/xe: Move setting last fence to vm_bind_ioctl_ops_install_fences
  drm/xe: Move ufence check to op_lock
  drm/xe: Move ufence add to vm_bind_ioctl_ops_install_fences
  drm/xe: Add xe_gt_tlb_invalidation_range and convert PT layer to use
    this
  drm/xe: Add xe_vm_pgtable_update_op to xe_vma_ops
  drm/xe: Use ordered WQ for TLB invalidation fences
  drm/xe: Delete PT update selftest
  drm/xe: Convert multiple bind ops into single job
  drm/xe: Remove old functions defs in xe_pt.h
  drm/xe: Update PT layer with better error handling
  drm/xe: Update VM trace events
  drm/xe: Update clear / populate arguments
  drm/xe: Add __xe_migrate_update_pgtables_cpu helper
  drm/xe: CPU binds for jobs
  drm/xe: Don't use migrate exec queue for page fault binds
  drm/xe: Add VM bind IOCTL error injection
  drm/xe/guc: Assert time'd out jobs are not from a VM exec queue
  drm/xe: Add PT exec queues

Thomas Hellström (2):
  drm/xe: Update xe_vm_rebind to return int
  drm/xe: Move vma rebinding to the drm_exec locking loop

 drivers/gpu/drm/xe/Makefile                 |    1 +
 drivers/gpu/drm/xe/tests/xe_migrate.c       |   86 --
 drivers/gpu/drm/xe/xe_bo.c                  |    7 +-
 drivers/gpu/drm/xe/xe_bo.h                  |    4 +-
 drivers/gpu/drm/xe/xe_device.c              |   35 +
 drivers/gpu/drm/xe/xe_device.h              |    2 +
 drivers/gpu/drm/xe/xe_device_types.h        |   16 +
 drivers/gpu/drm/xe/xe_exec.c                |   41 +-
 drivers/gpu/drm/xe/xe_exec_queue.c          |  120 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h    |   20 +-
 drivers/gpu/drm/xe/xe_gt_pagefault.c        |   10 +-
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c |   59 +-
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h |    3 +
 drivers/gpu/drm/xe/xe_guc_submit.c          |   22 +-
 drivers/gpu/drm/xe/xe_migrate.c             |  385 ++----
 drivers/gpu/drm/xe/xe_migrate.h             |   46 +-
 drivers/gpu/drm/xe/xe_pt.c                  | 1236 ++++++++++++-------
 drivers/gpu/drm/xe/xe_pt.h                  |   15 +-
 drivers/gpu/drm/xe/xe_pt_exec_queue.c       |  180 +++
 drivers/gpu/drm/xe/xe_pt_exec_queue.h       |   14 +
 drivers/gpu/drm/xe/xe_pt_types.h            |   53 +
 drivers/gpu/drm/xe/xe_sched_job.c           |   68 +-
 drivers/gpu/drm/xe/xe_sched_job_types.h     |   31 +-
 drivers/gpu/drm/xe/xe_sync.c                |   15 +
 drivers/gpu/drm/xe/xe_sync.h                |    1 +
 drivers/gpu/drm/xe/xe_trace.h               |   21 +-
 drivers/gpu/drm/xe/xe_vm.c                  | 1124 ++++++++---------
 drivers/gpu/drm/xe/xe_vm.h                  |    9 +-
 drivers/gpu/drm/xe/xe_vm_types.h            |  198 +--
 29 files changed, 2118 insertions(+), 1704 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_pt_exec_queue.c
 create mode 100644 drivers/gpu/drm/xe/xe_pt_exec_queue.h

-- 
2.34.1



More information about the Intel-xe mailing list