Hi ! This patchset aims to improve codec event tracing in v4l2.
The traces added in visl by Daniel Almeida are moved to the global trace events. They are adapted to trace each each field separately and not just the whole struct so that userspace can filter on different fields and libraries like libtracefs and libtraceevent can be used to list the fields instead of parsing the trace printk's. The trace event templates are also reworked to avoid long lines, but quoted string splits are kept as they don't cut words. To each trace event are also added a tgid and fd fields, helping userspace track different decoding sessions (contexts) based on the given file descriptor used by the given process id. Also for better tracking, stream on and stream off events are added as well as HW run and HW done events to track decoder core usage. The main focus is to be able to generate perfetto traces to show VPU usage, a perfetto producer using this can be found at [1] (it will be renamed to match the more generic approach than hantro). Other controls can be traced later as well, this patch set only focuses on mem2mem type drivers. [1]: https://gitlab.collabora.com/detlev/hantro-perf/-/tree/hantro-improved-info Changes since v1: - Don't modify the printk format - Trace all fields of the structs instead of the whole struct as a buffer - Remove fdinfo patches (they will come in another patch set) - Fix long lines - Rename v4l2_requests.h trace header to v4l2_controls.h - Add basic documentation Signed-off-by: Detlev Casanova <[email protected]> --- Detlev Casanova (9): media: Move visl traces to v4l2-core media: Map each struct field to its own trace field media: Add tgid and fd fields in v4l2_fh struct media: Add tgid and fd to the v4l2-requests trace fields media: Add missing types to v4l2_ctrl_ptr media: Trace the stateless controls when set in v4l2-ctrls-core.c media: Add stream on/off traces and run them in the ioctl media: Add HW run/done trace events media: hantro: Add v4l2_hw run/done traces drivers/media/platform/verisilicon/hantro.h | 1 + drivers/media/platform/verisilicon/hantro_drv.c | 10 + .../platform/verisilicon/rockchip_vpu981_regs.h | 1 + .../media/platform/verisilicon/rockchip_vpu_hw.c | 4 + drivers/media/test-drivers/visl/Makefile | 2 +- drivers/media/test-drivers/visl/visl-dec.c | 76 - drivers/media/test-drivers/visl/visl-trace-av1.h | 314 --- drivers/media/test-drivers/visl/visl-trace-fwht.h | 66 - drivers/media/test-drivers/visl/visl-trace-h264.h | 349 --- drivers/media/test-drivers/visl/visl-trace-hevc.h | 464 ---- drivers/media/test-drivers/visl/visl-trace-mpeg2.h | 99 - .../media/test-drivers/visl/visl-trace-points.c | 11 - drivers/media/test-drivers/visl/visl-trace-vp8.h | 156 -- drivers/media/test-drivers/visl/visl-trace-vp9.h | 292 --- drivers/media/v4l2-core/v4l2-ctrls-api.c | 10 + drivers/media/v4l2-core/v4l2-ctrls-core.c | 114 + drivers/media/v4l2-core/v4l2-fh.c | 1 + drivers/media/v4l2-core/v4l2-ioctl.c | 37 +- drivers/media/v4l2-core/v4l2-trace.c | 48 + include/media/v4l2-ctrls.h | 19 + include/media/v4l2-fh.h | 4 + include/trace/events/v4l2.h | 77 + include/trace/events/v4l2_controls.h | 2708 ++++++++++++++++++++ 23 files changed, 3033 insertions(+), 1830 deletions(-) --- base-commit: acb7500801e98639f6d8c2d796ed9f64cba83d3a change-id: 20260608-v4l2-add-ftrace-aec6e7f60a6c Best regards, -- Detlev Casanova <[email protected]>
