[Intel-xe] [PATCH 00/21] Add OA functionality to Xe
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Fri Oct 20 07:52:17 UTC 2023
On 20/10/2023 10:44, Lionel Landwerlin wrote:
> On 19/09/2023 19:10, Ashutosh Dixit wrote:
>> This patchset is the initial port of i915 perf/OA functionality to
>> the XE
>> driver. 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
>
> If you give us a syncobj to wait on for the NOA reconfiguration this
> won't be necessary
>
>> * NOA wait
>
> This is kind of required, otherwise we start reading reports from the
> OA buffer and the values are garbage
Actually thinking about it, we could use the syncobj you give us and do
the wait in a userspace batch.
-Lionel
>
>> * GuC ctx id (guc_sw_ctx_id)
>
> This is probably fine. On Gfx8 we always consider using OA a
> privileged operation, if we keep it like that then it's okay.
>
>> * CTX_R_PWR_CLK_STATE/GEN8_R_PWR_CLK_STATE
> I think if we never care about Gfx11 that's fine.
>> * hold_preemption (DRM_XE_OA_PROP_HOLD_PREEMPTION)
>
> Without this, we can't implement perf queries in userspace.
>
> Maybe that's okay?
>
>> * sseu_config (DRM_XE_OA_PROP_GLOBAL_SSEU)
> Without Gfx11 probably fine.
>> * 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, new patches 11 through 17
>> v6: New patches 18 through 21
>>
>> Ashutosh Dixit (21):
>> drm/xe/uapi: 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/uapi: "Perf" layer to support multiple perf counter stream
>> types
>> drm/xe/uapi: Multiplex PERF ops through a single PERF ioctl
>> drm/xe/uapi: Simplify OA configs in uapi
>> drm/xe/uapi: 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
>> drm/xe/uapi: More OA uapi fixes/additions
>> drm/xe/uapi: Drop OA_IOCTL_VERSION
>> drm/xe/uapi: Use OA unit id to identify OA unit
>> drm/xe/uapi: Convert OA property key/value pairs to a struct
>>
>> 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 | 2314 +++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_oa.h | 27 +
>> 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 | 5 +-
>> include/uapi/drm/xe_drm.h | 288 ++-
>> 18 files changed, 3272 insertions(+), 2 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
>>
>
More information about the Intel-xe
mailing list