public inbox for intel-xe@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v6 00/17] drm/xe: Multi Queue feature support
@ 2025-12-11  1:02 Niranjana Vishwanathapura
  2025-12-11  1:02 ` [PATCH v6 01/17] drm/xe/multi_queue: Add multi_queue_enable_mask to gt information Niranjana Vishwanathapura
                   ` (20 more replies)
  0 siblings, 21 replies; 32+ messages in thread
From: Niranjana Vishwanathapura @ 2025-12-11  1:02 UTC (permalink / raw)
  To: intel-xe; +Cc: matthew.brost, matthew.d.roper

Multi Queue is a new mode of execution supported by the compute and
blitter copy command streamers (CCS and BCS, respectively). It is an
enhancement of the existing hardware architecture and leverages the
same submission model. It enables support for efficient, parallel
execution of multiple queues within a single context.

Add support for multi-queue feature and enable it on xe3p_xpc.

The associated IGT patch series is,
https://patchwork.freedesktop.org/series/156866/

The Compute UMD usecase is,
https://github.com/intel/compute-runtime/pull/862

Changes in v2:
- Rename multi_queue_enable_mask to multi_queue_engine_class_mask.
- Remove group->lock, fix function semantics, add additional comments,
  add asserts, update uapi kernel-doc, move group->list_lock to right
  patch, add XE_BO_FLAG_GGTT_INVALIDATE for cgp bo.
- Fix G2H_LEN_DW_MULTI_QUEUE_CONTEXT value.
- Add fs_reclaim lock dependency, add bspec ref, other minor cleanups.

Changes in v3:
- Add patch "drm/xe/xe3p: Disable GuC Dynamic ICS for Xe3p"
- Add patch "drm/xe/multi_queue: Reset GT upon CGP_SYNC failure"
- Code refactoring and kernel-doc update
- Assert CGP_SYNC message length is valid
- For CGP bo use PINNED_LATE_RESTORE/USER_VRAM/GGTT_INVALIDATE flags
- Properly handle cleanup of multi-queue group

Changes in v4:
- uapi change due to rebase
- Remove unwated patch 'drm/xe/xe3p: Disable GuC Dynamic ICS for Xe3p'
- Use xe_guc_ct_wake_waiters(), remove vf recovery support
- Fix IS_ENABLED(CONFIG_LOCKDEP) check
- Revert stop/restart of all submission queues in the group in TDR
- Assert !multi_queue where applicable
- Fix CGP_CONTEXT_ERROR message

Changes in v5:
- Add FIXME in TDR (Matt Brost)
- Keep multi-queue disabled (until FIXME are addressed) by removing
  patch 'drm/xe/multi_queue: Enable multi_queue on xe3p_xpc'
- Ban group for guc reported errors

Changes in v6:
- In TDR, trigger cleanup of group only for multi-queue case

Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Acked-by: Mateusz Hoppe <mateusz.hoppe@intel.com>

Niranjana Vishwanathapura (17):
  drm/xe/multi_queue: Add multi_queue_enable_mask to gt information
  drm/xe/multi_queue: Add user interface for multi queue support
  drm/xe/multi_queue: Add GuC interface for multi queue support
  drm/xe/multi_queue: Add multi queue priority property
  drm/xe/multi_queue: Handle invalid exec queue property setting
  drm/xe/multi_queue: Add exec_queue set_property ioctl support
  drm/xe/multi_queue: Add support for multi queue dynamic priority
    change
  drm/xe/multi_queue: Add multi queue information to guc_info dump
  drm/xe/multi_queue: Handle tearing down of a multi queue
  drm/xe/multi_queue: Set QUEUE_DRAIN_MODE for Multi Queue batches
  drm/xe/multi_queue: Handle CGP context error
  drm/xe/multi_queue: Reset GT upon CGP_SYNC failure
  drm/xe/multi_queue: Teardown group upon job timeout
  drm/xe/multi_queue: Tracepoint support
  drm/xe/multi_queue: Support active group after primary is destroyed
  drm/xe/doc: Add documentation for Multi Queue Group
  drm/xe/doc: Add documentation for Multi Queue Group GuC interface

 Documentation/gpu/xe/xe_exec_queue.rst        |  14 +
 drivers/gpu/drm/xe/abi/guc_actions_abi.h      |   4 +
 .../gpu/drm/xe/instructions/xe_gpu_commands.h |   1 +
 drivers/gpu/drm/xe/xe_debugfs.c               |   2 +
 drivers/gpu/drm/xe/xe_device.c                |   9 +-
 drivers/gpu/drm/xe/xe_exec_queue.c            | 431 ++++++++++++-
 drivers/gpu/drm/xe/xe_exec_queue.h            |  51 ++
 drivers/gpu/drm/xe/xe_exec_queue_types.h      |  59 ++
 drivers/gpu/drm/xe/xe_gt_types.h              |   5 +
 drivers/gpu/drm/xe/xe_guc_ct.c                |   8 +
 drivers/gpu/drm/xe/xe_guc_fwif.h              |   3 +
 drivers/gpu/drm/xe/xe_guc_submit.c            | 584 ++++++++++++++++--
 drivers/gpu/drm/xe/xe_guc_submit.h            |   3 +
 drivers/gpu/drm/xe/xe_guc_submit_types.h      |  13 +
 drivers/gpu/drm/xe/xe_lrc.c                   |  29 +
 drivers/gpu/drm/xe/xe_lrc.h                   |   3 +
 drivers/gpu/drm/xe/xe_pci.c                   |   1 +
 drivers/gpu/drm/xe/xe_pci_types.h             |   1 +
 drivers/gpu/drm/xe/xe_ring_ops.c              |  64 +-
 drivers/gpu/drm/xe/xe_trace.h                 |  46 ++
 include/uapi/drm/xe_drm.h                     |  44 ++
 21 files changed, 1292 insertions(+), 83 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2026-01-21 21:23 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-11  1:02 [PATCH v6 00/17] drm/xe: Multi Queue feature support Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 01/17] drm/xe/multi_queue: Add multi_queue_enable_mask to gt information Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 02/17] drm/xe/multi_queue: Add user interface for multi queue support Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 03/17] drm/xe/multi_queue: Add GuC " Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 04/17] drm/xe/multi_queue: Add multi queue priority property Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 05/17] drm/xe/multi_queue: Handle invalid exec queue property setting Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 06/17] drm/xe/multi_queue: Add exec_queue set_property ioctl support Niranjana Vishwanathapura
2026-01-19 16:57   ` Thomas Hellström
2026-01-20 21:06     ` Niranjana Vishwanathapura
2026-01-20 22:20       ` Matthew Brost
2026-01-20 22:30         ` Matthew Brost
2026-01-21 15:29         ` Thomas Hellström
2026-01-21 21:23           ` Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 07/17] drm/xe/multi_queue: Add support for multi queue dynamic priority change Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 08/17] drm/xe/multi_queue: Add multi queue information to guc_info dump Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 09/17] drm/xe/multi_queue: Handle tearing down of a multi queue Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 10/17] drm/xe/multi_queue: Set QUEUE_DRAIN_MODE for Multi Queue batches Niranjana Vishwanathapura
2025-12-11  1:02 ` [PATCH v6 11/17] drm/xe/multi_queue: Handle CGP context error Niranjana Vishwanathapura
2025-12-11  1:03 ` [PATCH v6 12/17] drm/xe/multi_queue: Reset GT upon CGP_SYNC failure Niranjana Vishwanathapura
2025-12-11  1:03 ` [PATCH v6 13/17] drm/xe/multi_queue: Teardown group upon job timeout Niranjana Vishwanathapura
2025-12-11  1:03 ` [PATCH v6 14/17] drm/xe/multi_queue: Tracepoint support Niranjana Vishwanathapura
2025-12-11  1:03 ` [PATCH v6 15/17] drm/xe/multi_queue: Support active group after primary is destroyed Niranjana Vishwanathapura
2025-12-19 21:06   ` Rodrigo Vivi
2025-12-19 22:35     ` Niranjana Vishwanathapura
2025-12-19 22:53       ` Matt Roper
2025-12-31  1:51         ` Niranjana Vishwanathapura
2025-12-11  1:03 ` [PATCH v6 16/17] drm/xe/doc: Add documentation for Multi Queue Group Niranjana Vishwanathapura
2025-12-11  1:03 ` [PATCH v6 17/17] drm/xe/doc: Add documentation for Multi Queue Group GuC interface Niranjana Vishwanathapura
2025-12-11  1:11 ` ✗ CI.checkpatch: warning for drm/xe: Multi Queue feature support (rev6) Patchwork
2025-12-11  1:12 ` ✓ CI.KUnit: success " Patchwork
2025-12-11  2:25 ` ✓ Xe.CI.BAT: " Patchwork
2025-12-11 10:04 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox