[libcamera-devel] [PATCH 0/1] Use tracing with perfetto in ChromeOS

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jul 20 10:49:11 CEST 2022


Hi Harvey,

On Tue, Jul 19, 2022 at 05:20:56PM +0800, Cheng-Hao Yang via libcamera-devel wrote:
> Hi Kieran,
> 
> Thanks for looking into this! I'll add more description/instructions in the
> README, including adding new tracing points and how to check the tracing
> result.

Thank you.

> In the meantime, you can try https://ui.perfetto.dev with the attached
> tracing result I recorded. In the "Show timeline" tab, you can see that
> there are quite some traces with Category "libcamera "in CameraModuleThr 9
> & CameraDeviceOps 11. Those might be helpful when we need to debug
> something :)

Do you know if there's an easy way to try perfetto on a non-Chrome OS
(and non-Android) device ?

> On Mon, Jul 18, 2022 at 7:49 PM Kieran Bingham wrote:
> > Quoting Harvey Yang via libcamera-devel (2022-06-15 15:20:50)
> > > Hello everyone,
> > >
> > > This is the first draft of the patch(es) that uses tracing with perfetto
> > > instead of lttng when libcamera is used in ChromeOS, which already uses
> > > perfetto to collect traces in most of the applications/services.
> > >
> > > Please take a look and see if it's the right direction to go. Mostly I
> > > copied and pasted the simple producer in chromiumos (also written by
> > > me :) ):
> > >
> > https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/perfetto_simple_producer
> > >
> >
> > This looks interesting, and the perfetto UI viewer tool [0] looks good too.
> >
> > [0] https://ui.perfetto.dev/
> >
> > Could you summarise some instructions on how to test this please?
> > A good visualisation for libcamera internals would be great. I would
> > love to see this able to switch between showing what each thread /
> > component is busy processing, or have the timeline present the progress
> > of Requests through the system.
> >
> > > Harvey Yang (1):
> > >   Use tracing with perfetto in ChromeOS
> > >
> > >  include/libcamera/internal/tracepoints.h.in   | 37 +++++++++--
> > >  .../internal/tracepoints/meson.build          | 25 ++++---
> > >  .../internal/tracepoints/pipeline.perfetto    | 10 +++
> > >  .../internal/tracepoints/request.perfetto     | 30 +++++++++
> > >  meson.build                                   |  1 +
> > >  src/android/cros/camera3_hal.cpp              |  5 ++
> > >  src/android/cros/meson.build                  |  1 +
> > >  src/libcamera/meson.build                     | 18 ++++-
> > >  src/libcamera/pipeline_perfetto.cpp           | 22 +++++++
> > >  src/libcamera/request_perfetto.cpp            | 65 +++++++++++++++++++
> > >  src/libcamera/tracepoints.cpp                 | 11 ++++
> > >  11 files changed, 209 insertions(+), 16 deletions(-)
> > >  create mode 100644 include/libcamera/internal/tracepoints/pipeline.perfetto
> > >  create mode 100644 include/libcamera/internal/tracepoints/request.perfetto
> > >  create mode 100644 src/libcamera/pipeline_perfetto.cpp
> > >  create mode 100644 src/libcamera/request_perfetto.cpp

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list