[PATCH 0/3] drm/panfrost: Expose HW counters to userspace
Boris Brezillon
boris.brezillon at collabora.com
Thu Apr 4 15:20:48 UTC 2019
Hello,
This patch adds new ioctls to expose GPU counters to userspace.
These will be used by the mesa driver (should be posted soon).
A few words about the implementation: I followed the VC4/Etnaviv model
where perf counters are retrieved on a per-job basis. This allows one
to have get accurate results when there are users using the GPU
concurrently.
AFAICT, the mali kbase is using a different approach where several
users can register a performance monitor but with no way to have fined
grained control over what job/GPU-context to track.
This design choice comes at a cost: every time the perfmon context
changes (the perfmon context is the list of currently active
perfmons), the driver has to add a fence to prevent new jobs from
corrupting counters that will be dumped by previous jobs.
Let me know if that's an issue and if you think we should approach
things differently.
Regards,
Boris
Boris Brezillon (3):
drm/panfrost: Move gpu_{write,read}() macros to panfrost_regs.h
drm/panfrost: Expose HW counters to userspace
panfrost/drm: Define T860 perf counters
drivers/gpu/drm/panfrost/Makefile | 3 +-
drivers/gpu/drm/panfrost/panfrost_device.c | 8 +
drivers/gpu/drm/panfrost/panfrost_device.h | 11 +
drivers/gpu/drm/panfrost/panfrost_drv.c | 22 +-
drivers/gpu/drm/panfrost/panfrost_gpu.c | 46 +-
drivers/gpu/drm/panfrost/panfrost_job.c | 24 +
drivers/gpu/drm/panfrost/panfrost_job.h | 4 +
drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 954 ++++++++++++++++++++
drivers/gpu/drm/panfrost/panfrost_perfcnt.h | 59 ++
drivers/gpu/drm/panfrost/panfrost_regs.h | 22 +
include/uapi/drm/panfrost_drm.h | 122 +++
11 files changed, 1268 insertions(+), 7 deletions(-)
create mode 100644 drivers/gpu/drm/panfrost/panfrost_perfcnt.c
create mode 100644 drivers/gpu/drm/panfrost/panfrost_perfcnt.h
--
2.20.1
More information about the dri-devel
mailing list