• Boris Brezillon's avatar
    drm/panfrost: Expose performance counters through unstable ioctls · 7786fd10
    Boris Brezillon authored
    Expose performance counters through 2 driver specific ioctls: one to
    enable/disable the perfcnt block, and one to dump the counter values.
    
    There are discussions to expose global performance monitors (those
    counters that can't be retrieved on a per-job basis) in a consistent
    way, but this is likely to take time to settle on something that works
    for various HW/users.
    The ioctls are marked unstable so we can get rid of them when the time
    comes. We initally went for a debugfs-based interface, but this was
    making the transition to per-FD address space more complicated (we need
    to specify the namespace the GPU has to use when dumping the perf
    counters), hence the decision to switch back to driver specific ioctls
    which are passed the FD they operate on and thus will have a dedicated
    address space attached to them.
    
    Other than that, the implementation is pretty simple: it basically dumps
    all counters and copy the values to a userspace buffer. The parsing is
    left to userspace which has to know the specific layout that's used
    by the GPU (layout differs on a per-revision basis).
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
    Acked-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190618081648.17297-5-boris.brezillon@collabora.com
    7786fd10
panfrost_perfcnt.c 8.42 KB