[PATCH v4 00/11] Add MSIX functionality to XE

Ilia Levi ilia.levi at intel.com
Thu Jul 25 10:22:02 UTC 2024


This patch set enables MSIX workflow. The main changes are:

1. The code supports both msi and msix, some refactoring had
   to be done.
2. Since multiple interrupts are now available there is no need for
   interrupt aggregation in HW, hence there are new interrupt
   handlers.
3. MSIX interrupts are system resources so an interrupt allocator was
   implemented.
4. Adding MSIX infra to exec queues.
5. MSIX in GT also uses memirq, some refactoring had to be done to
   enable it.

v2: 
  - Rebase
  - Fix build and checkpatch errors
  - Fix commit messages

v3:
  - Rebase
  - Code review comments (Niranjana)
  - Proper memirq usage to distinguish interrupt source and status
  - Default MSI-X vector when unique MSI-X is not required

v4:
  - Rebase
  - Minor fix in msix allocator

Dani Liberman (4):
  drm/xe/irq: refactor irq flows to support also msix
  drm/xe/irq: add msix allocator
  drm/xe/exec: adding msix infra to exec queue
  drm/xe/irq: add default msix

Ilia Levi (7):
  drm/xe: add irq offset of engine instance 0 to hw engine properties
  drm/xe: move memirq out of vf
  drm/xe: memirq infra changes for msix
  drm/xe/irq: add hw engine irq handler
  drm/xe: move the kernel lrc from hwe to execlist port
  drm/xe: msix support preparations - enable memirq
  drm/xe: msix support for hw engines

 drivers/gpu/drm/xe/regs/xe_engine_regs.h |   3 +
 drivers/gpu/drm/xe/regs/xe_lrc_layout.h  |   3 +
 drivers/gpu/drm/xe/xe_device.c           |   8 +-
 drivers/gpu/drm/xe/xe_device.h           |  12 +
 drivers/gpu/drm/xe/xe_device_types.h     |  22 +-
 drivers/gpu/drm/xe/xe_exec_queue.c       |  46 +++-
 drivers/gpu/drm/xe/xe_exec_queue_types.h |   2 +
 drivers/gpu/drm/xe/xe_execlist.c         |  18 +-
 drivers/gpu/drm/xe/xe_execlist_types.h   |   2 +
 drivers/gpu/drm/xe/xe_guc.c              |   2 +-
 drivers/gpu/drm/xe/xe_hw_engine.c        |  50 ++--
 drivers/gpu/drm/xe/xe_hw_engine_types.h  |   4 +-
 drivers/gpu/drm/xe/xe_irq.c              | 324 ++++++++++++++++++++---
 drivers/gpu/drm/xe/xe_irq.h              |   7 +
 drivers/gpu/drm/xe/xe_lrc.c              |  32 ++-
 drivers/gpu/drm/xe/xe_lrc.h              |   2 +-
 drivers/gpu/drm/xe/xe_memirq.c           | 123 +++++----
 drivers/gpu/drm/xe/xe_memirq.h           |   8 +-
 drivers/gpu/drm/xe/xe_memirq_types.h     |   6 +-
 19 files changed, 541 insertions(+), 133 deletions(-)

-- 
2.43.2



More information about the Intel-xe mailing list