]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/doc: Add documentation for Execution Queues
authorNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Thu, 2 Oct 2025 04:43:20 +0000 (21:43 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Thu, 2 Oct 2025 15:43:07 +0000 (08:43 -0700)
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>
Documentation/gpu/xe/index.rst
Documentation/gpu/xe/xe_exec_queue.rst [new file with mode: 0644]
drivers/gpu/drm/xe/xe_exec_queue.c

index 88b22fad880e7aafee5b68b13a3b42ec71789dc4..bc432c95d1a359542e692f9e79a5da02093ecee4 100644 (file)
@@ -14,6 +14,7 @@ DG2, etc is provided to prototype the driver.
    xe_mm
    xe_map
    xe_migrate
+   xe_exec_queue
    xe_cs
    xe_pm
    xe_gt_freq
diff --git a/Documentation/gpu/xe/xe_exec_queue.rst b/Documentation/gpu/xe/xe_exec_queue.rst
new file mode 100644 (file)
index 0000000..6076569
--- /dev/null
@@ -0,0 +1,20 @@
+.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+===============
+Execution Queue
+===============
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c
+   :doc: Execution Queue
+
+Internal API
+============
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue_types.h
+   :internal:
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.h
+   :internal:
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c
+   :internal:
index 37b2b93b73d6c92cf676646ce1e3eb04ce0ac75d..db3f869b53f39df3b2d7ee61344b8d48946927f4 100644 (file)
 #include "xe_vm.h"
 #include "xe_pxp.h"
 
+/**
+ * DOC: Execution Queue
+ *
+ * An Execution queue is an interface for the HW context of execution.
+ * The user creates an execution queue, submits the GPU jobs through those
+ * queues and in the end destroys them.
+ *
+ * Execution queues can also be created by XeKMD itself for driver internal
+ * operations like object migration etc.
+ *
+ * An execution queue is associated with a specified HW engine or a group of
+ * engines (belonging to the same tile and engine class) and any GPU job
+ * submitted on the queue will be run on one of these engines.
+ *
+ * An execution queue is tied to an address space (VM). It holds a reference
+ * of the associated VM and the underlying Logical Ring Context/s (LRC/s)
+ * until the queue is destroyed.
+ *
+ * The execution queue sits on top of the submission backend. It opaquely
+ * handles the GuC and Execlist backends whichever the platform uses, and
+ * the ring operations the different engine classes support.
+ */
+
 enum xe_exec_queue_sched_prop {
        XE_EXEC_QUEUE_JOB_TIMEOUT = 0,
        XE_EXEC_QUEUE_TIMESLICE = 1,