drm/v3d: Expose performance counters to userspace
authorJuan A. Suarez Romero <jasuarez@igalia.com>
Tue, 8 Jun 2021 11:15:41 +0000 (13:15 +0200)
committerMelissa Wen <melissa.srw@gmail.com>
Tue, 20 Jul 2021 23:19:59 +0000 (00:19 +0100)
commit26a4dc29b74a137f45665089f6d3d633fcc9b662
treeafe6c1cade475491fd9a159a8c53b27b2de73ec2
parent56f0729a510f92151682ff6c89f69724d5595d6e
drm/v3d: Expose performance counters to userspace

The V3D engine has several hardware performance counters that can of
interest for userspace performance analysis tools.

This exposes new ioctls to create and destroy performance monitor
objects, as well as to query the counter values.

Each created performance monitor object has an ID that can be attached
to CL/CSD submissions, so the driver enables the requested counters when
the job is submitted, and updates the performance monitor values when
the job is done.

It is up to the user to ensure all the jobs have been finished before
getting the performance monitor values. It is also up to the user to
properly synchronize BCL jobs when submitting jobs with different
performance monitors attached.

Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Cc: Emma Anholt <emma@anholt.net>
To: dri-devel@lists.freedesktop.org
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Acked-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210608111541.461991-1-jasuarez@igalia.com
drivers/gpu/drm/v3d/Makefile
drivers/gpu/drm/v3d/v3d_drv.c
drivers/gpu/drm/v3d/v3d_drv.h
drivers/gpu/drm/v3d/v3d_gem.c
drivers/gpu/drm/v3d/v3d_perfmon.c [new file with mode: 0644]
drivers/gpu/drm/v3d/v3d_regs.h
drivers/gpu/drm/v3d/v3d_sched.c
include/uapi/drm/v3d_drm.h