Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/xe/doc: Add documentation for Execution Queues

Add documentation for Xe Execution Queues and add xe_exec_queue.rst
file.

v2: Add info about how Execution queue interfaces
with other components in the driver (Matt Brost)

Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20251002044319.450181-2-niranjana.vishwanathapura@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>

authored by

Niranjana Vishwanathapura and committed by
Lucas De Marchi
b56bc810 e4863f11

+44
+1
Documentation/gpu/xe/index.rst
··· 14 14 xe_mm 15 15 xe_map 16 16 xe_migrate 17 + xe_exec_queue 17 18 xe_cs 18 19 xe_pm 19 20 xe_gt_freq
+20
Documentation/gpu/xe/xe_exec_queue.rst
··· 1 + .. SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + 3 + =============== 4 + Execution Queue 5 + =============== 6 + 7 + .. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c 8 + :doc: Execution Queue 9 + 10 + Internal API 11 + ============ 12 + 13 + .. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue_types.h 14 + :internal: 15 + 16 + .. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.h 17 + :internal: 18 + 19 + .. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c 20 + :internal:
+23
drivers/gpu/drm/xe/xe_exec_queue.c
··· 28 28 #include "xe_vm.h" 29 29 #include "xe_pxp.h" 30 30 31 + /** 32 + * DOC: Execution Queue 33 + * 34 + * An Execution queue is an interface for the HW context of execution. 35 + * The user creates an execution queue, submits the GPU jobs through those 36 + * queues and in the end destroys them. 37 + * 38 + * Execution queues can also be created by XeKMD itself for driver internal 39 + * operations like object migration etc. 40 + * 41 + * An execution queue is associated with a specified HW engine or a group of 42 + * engines (belonging to the same tile and engine class) and any GPU job 43 + * submitted on the queue will be run on one of these engines. 44 + * 45 + * An execution queue is tied to an address space (VM). It holds a reference 46 + * of the associated VM and the underlying Logical Ring Context/s (LRC/s) 47 + * until the queue is destroyed. 48 + * 49 + * The execution queue sits on top of the submission backend. It opaquely 50 + * handles the GuC and Execlist backends whichever the platform uses, and 51 + * the ring operations the different engine classes support. 52 + */ 53 + 31 54 enum xe_exec_queue_sched_prop { 32 55 XE_EXEC_QUEUE_JOB_TIMEOUT = 0, 33 56 XE_EXEC_QUEUE_TIMESLICE = 1,