Commit b56bc810 authored by Niranjana Vishwanathapura's avatar Niranjana Vishwanathapura Committed by Lucas De Marchi
Browse files

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: default avatarNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20251002044319.450181-2-niranjana.vishwanathapura@intel.com


Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
parent e4863f11
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+20 −0
Original line number Diff line number Diff line
.. 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:
+23 −0
Original line number Diff line number Diff line
@@ -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,