[Intel-xe] [PATCH 00/17] Add OA functionality to Xe

Ashutosh Dixit ashutosh.dixit at intel.com
Fri Sep 8 04:23:31 UTC 2023


This patchset is the initial port of i915 perf/OA functionality to the XE
driver. It has been tested against the following IGT patch:

https://patchwork.freedesktop.org/series/121082/

The following features in i915 have not been ported and will be added (as
new patches) if/as they are needed:

* Inline batch submission on stream exec_queue/hw_engine
* NOA wait
* GuC ctx id (guc_sw_ctx_id)
* CTX_R_PWR_CLK_STATE/GEN8_R_PWR_CLK_STATE
* hold_preemption (DRM_XE_OA_PROP_HOLD_PREEMPTION)
* sseu_config (DRM_XE_OA_PROP_GLOBAL_SSEU)
* MTL bios_c6_setup
* ratelimits
* compat ioctl

I am providing the following additional HAX patch (not part of this series)
to help review these patches:

https://patchwork.freedesktop.org/patch/551683/?series=120100&rev=4

The commit message in the above patch explains how it can be useful for
reviewing this series.

This series is also available at:
        https://gitlab.freedesktop.org/adixit/kernel/-/tree/xe-oa

The series has been tested against this IGT series:
        https://gitlab.freedesktop.org/adixit/igt-gpu-tools/-/tree/xe-oa

v2: Fix build
v3: Rebase, due to s/xe_engine/xe_exec_queue/
v4: Re-run for testing
v5: Address review comments
    Add new patches 11 through 17
    New OA uapi: Patch 12, 13, 14, 15. More uapi changes will posted in future series.

Ashutosh Dixit (17):
  drm/xe/oa: Introduce OA (observability architecture) uapi
  drm/xe/oa: Add OA types
  drm/xe/oa: Add registers and GPU commands used by OA
  drm/xe/oa: Module init/exit and probe/remove
  drm/xe/oa: Add/remove config ioctl's
  drm/xe/oa: Start implementing OA stream open ioctl
  drm/xe/oa: OA stream initialization
  drm/xe/oa: Expose OA stream fd
  drm/xe/oa: Read file_operation
  drm/xe/oa: Implement queries
  drm/xe/oa: Override GuC RC with OA on PVC
  drm/xe/perf: "Perf" layer to support multiple perf counter stream types
  drm/xe/oa: Multiplex PERF ops through a single PERF ioctl
  drm/xe/oa: Simplify OA configs in uapi
  drm/xe/oa: Remove OA format names from OA uapi
  drm/xe/oa: Make xe_oa_timestamp_frequency per gt
  drm/xe/oa: Remove filtering reports on context id

 drivers/gpu/drm/xe/Makefile               |    2 +
 drivers/gpu/drm/xe/regs/xe_engine_regs.h  |    2 +
 drivers/gpu/drm/xe/regs/xe_gpu_commands.h |   13 +
 drivers/gpu/drm/xe/regs/xe_oa_regs.h      |  173 ++
 drivers/gpu/drm/xe/xe_device.c            |   13 +
 drivers/gpu/drm/xe/xe_device_types.h      |    4 +
 drivers/gpu/drm/xe/xe_gt_types.h          |    4 +
 drivers/gpu/drm/xe/xe_guc_pc.c            |   60 +
 drivers/gpu/drm/xe/xe_guc_pc.h            |    3 +
 drivers/gpu/drm/xe/xe_hw_engine_types.h   |    2 +
 drivers/gpu/drm/xe/xe_module.c            |    5 +
 drivers/gpu/drm/xe/xe_oa.c                | 2349 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_oa.h                |   28 +
 drivers/gpu/drm/xe/xe_oa_types.h          |  307 +++
 drivers/gpu/drm/xe/xe_perf.c              |   36 +
 drivers/gpu/drm/xe/xe_perf.h              |   16 +
 drivers/gpu/drm/xe/xe_query.c             |    6 +-
 include/uapi/drm/xe_drm.h                 |  244 ++-
 18 files changed, 3264 insertions(+), 3 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/regs/xe_oa_regs.h
 create mode 100644 drivers/gpu/drm/xe/xe_oa.c
 create mode 100644 drivers/gpu/drm/xe/xe_oa.h
 create mode 100644 drivers/gpu/drm/xe/xe_oa_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_perf.c
 create mode 100644 drivers/gpu/drm/xe/xe_perf.h

-- 
2.41.0



More information about the Intel-xe mailing list