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

Cheng-Hao Yang chenghaoyang at chromium.org
Wed Jul 20 10:57:22 CEST 2022


Hi Laurent,

> Do you know if there's an easy way to try perfetto on a non-Chrome OS
(and non-Android) device ?
I haven't tried it myself, but on the Perfetto Docs, there are instructions
to capture a trace on Linux [1]. I'm not sure what kind of traces you'd get
though :)

Do you mean that we might consider using perfetto in libcamera, not only on
ChromeOS devices?

With a trace result (like I attached in the last message) though, we can
see the visualized result on any devices with a browser, FYI.

[1]: https://perfetto.dev/docs/quickstart/linux-tracing

On Wed, Jul 20, 2022 at 4:49 PM Laurent Pinchart <
laurent.pinchart at ideasonboard.com> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20220720/fbaa5796/attachment.htm>


More information about the libcamera-devel mailing list