[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