drm/Panfrost Mali Driver

Panfrost DRM client usage stats implementation

The drm/Panfrost driver implements the DRM client usage stats specification as documented in DRM client usage stats.

Example of the output showing the implemented key value pairs and entirety of the currently possible format options:

::

pos: 0 flags: 02400002 mnt_id: 27 ino: 531 drm-driver: panfrost drm-client-id: 14 drm-engine-fragment: 1846584880 ns drm-cycles-fragment: 1424359409 drm-maxfreq-fragment: 799999987 Hz drm-curfreq-fragment: 799999987 Hz drm-engine-vertex-tiler: 71932239 ns drm-cycles-vertex-tiler: 52617357 drm-maxfreq-vertex-tiler: 799999987 Hz drm-curfreq-vertex-tiler: 799999987 Hz drm-total-memory: 290 MiB drm-shared-memory: 0 MiB drm-active-memory: 226 MiB drm-resident-memory: 36496 KiB drm-purgeable-memory: 128 KiB

Possible drm-engine- key names are: fragment, and vertex-tiler. drm-curfreq- values convey the current operating frequency for that engine.

Users must bear in mind that engine and cycle sampling are disabled by default, because of power saving concerns. fdinfo users and benchmark applications which query the fdinfo file must make sure to toggle the job profiling status of the driver by writing into the appropriate sysfs node:

echo <N> > /sys/bus/platform/drivers/panfrost/[a-f0-9]*.gpu/profiling

Where N is either 0 or 1, depending on the desired enablement status.