[libcamera-devel] [PATCH v3 0/6] Tracing
Paul Elder
paul.elder at ideasonboard.com
Thu Oct 29 11:16:23 CET 2020
Implament tracing in libcamera. Add tracepoints to Request. Also add a
pair of tracepoints for measuring time taken for IPA calls, and make the
raspberry pi pipeline handler use them.
Add a script to show how one can analyze traces programatically. The
script gathers statistics on time taken for IPA calls.
Add tracing documentation.
Changes in v3:
- add macros LIBCAMERA_TRACEPOINT_IPA_{BEGIN,END} for convenience for
tracing IPA calls
- this macro also makes it so that we can pass the pipeline and
function name as symbols and not strings
- add enum tracepoint values so we get nice enum strings in the trace
output, instead of just ints
- add pointer addresses to tracepoint fields so we can get addresses of
objects in the trace output
- upgrade the Request tracepoints
- fix passing const strings into tracepoints without the need to cast
- expand and fix documentation
Paul Elder (6):
libcamera: tracing: Implement tracing infrastructure
libcamera: request: Add tracepoints
tracepoints: Add pipeline tracepoints for tracing IPA calls
pipeline: raspberrypi: Add IPA call tracepoints
utils: tracepoints: Add simple statistics script
Documentation: tracing: Add tracing guide
Documentation/Doxyfile.in | 2 +
Documentation/guides/tracing.rst | 140 ++++++++++++++++++
Documentation/index.rst | 1 +
Documentation/meson.build | 1 +
README.rst | 3 +
include/libcamera/internal/meson.build | 9 ++
include/libcamera/internal/tracepoints.h.in | 62 ++++++++
.../internal/tracepoints/meson.build | 6 +
.../internal/tracepoints/pipeline.tp | 25 ++++
.../libcamera/internal/tracepoints/request.tp | 90 +++++++++++
meson.build | 3 +
meson_options.txt | 5 +
src/libcamera/meson.build | 7 +
.../pipeline/raspberrypi/raspberrypi.cpp | 9 ++
src/libcamera/request.cpp | 11 ++
src/libcamera/tracepoints.cpp | 10 ++
utils/meson.build | 1 +
utils/tracepoints/analyze.py | 66 +++++++++
utils/tracepoints/gen-tp-header.py | 38 +++++
utils/tracepoints/meson.build | 5 +
20 files changed, 494 insertions(+)
create mode 100644 Documentation/guides/tracing.rst
create mode 100644 include/libcamera/internal/tracepoints.h.in
create mode 100644 include/libcamera/internal/tracepoints/meson.build
create mode 100644 include/libcamera/internal/tracepoints/pipeline.tp
create mode 100644 include/libcamera/internal/tracepoints/request.tp
create mode 100644 src/libcamera/tracepoints.cpp
create mode 100755 utils/tracepoints/analyze.py
create mode 100644 utils/tracepoints/gen-tp-header.py
create mode 100644 utils/tracepoints/meson.build
--
2.27.0
More information about the libcamera-devel
mailing list