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>
This commit is contained in:
Niranjana Vishwanathapura 2025-10-01 21:43:20 -07:00 committed by Lucas De Marchi
parent e4863f1159
commit b56bc81078
3 changed files with 44 additions and 0 deletions

View 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

View File

@ -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:

View File

@ -28,6 +28,29 @@
#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,