[PATCH v3 0/4] Refactor xe_exec_queue_create to fix user extensions

Brian Welty brian.welty at intel.com
Wed Jan 10 17:32:48 UTC 2024


We have an issue in that exec_queue_user_extensions are applied too late.
In the case of USM properties, these need to be set prior to xe_lrc_init().

Split __xe_exec_queue_create() into two functions, alloc and init.
Setting of exec_queue user extensions is moved from the end of the ioctl
function earlier, into __xe_exec_queue_alloc(). This fixes above issue
with USM properties being set too late.

However, in order to apply user extensions this early, we can no longer
call q->ops functions.  Instead, make it more efficient. User extension
functions can simply update the q->sched_props values and they will be
applied by the backend during q->ops->init().

Note to reviewers, perhaps review patch #3 first.

v2: readability cleanup, added a patch to remove now unused
    exec_queue_ops.set_job_timeout_ms()
v3: rebased, sched_props.priority fixes and changes are already
    merged


Brian Welty (4):
  drm/xe: Refactor __xe_exec_queue_create()
  drm/xe: Add exec_queue.sched_props.job_timeout_ms
  drm/xe: Finish refactoring of exec_queue_create
  drm/xe: Remove set_job_timeout_ms() from exec_queue_ops

 drivers/gpu/drm/xe/xe_exec_queue.c       | 128 ++++++++++++++++-------
 drivers/gpu/drm/xe/xe_exec_queue.h       |   3 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h |   4 +-
 drivers/gpu/drm/xe/xe_execlist.c         |   8 --
 drivers/gpu/drm/xe/xe_gsc.c              |   2 +-
 drivers/gpu/drm/xe/xe_gt.c               |   4 +-
 drivers/gpu/drm/xe/xe_guc_submit.c       |  18 +---
 drivers/gpu/drm/xe/xe_migrate.c          |   2 +-
 8 files changed, 98 insertions(+), 71 deletions(-)

-- 
2.43.0



More information about the Intel-xe mailing list