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 <detlev.casanova@collabora.com>
---
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 <detlev.casanova@collabora.com>