{"id":10305,"url":"https://patchwork.libcamera.org/api/covers/10305/?format=json","web_url":"https://patchwork.libcamera.org/cover/10305/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20201030085756.79329-1-paul.elder@ideasonboard.com>","date":"2020-10-30T08:57:51","name":"[libcamera-devel,v4,0/5] Tracing","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/10305/mbox/","series":[{"id":1435,"url":"https://patchwork.libcamera.org/api/series/1435/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1435","date":"2020-10-30T08:57:51","name":"Tracing","version":4,"mbox":"https://patchwork.libcamera.org/series/1435/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/10305/comments/","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0D9F7BDB1E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Oct 2020 08:58:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8631062979;\n\tFri, 30 Oct 2020 09:58:05 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0F4DA62034\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Oct 2020 09:58:04 +0100 (CET)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 93B2D9B7;\n\tFri, 30 Oct 2020 09:58:02 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dF49LWpU\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1604048283;\n\tbh=jL9sQPk9snXWXusgSQ8CiD8Bse+FzMqkdC3UKFFXiOQ=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=dF49LWpUElHX8HcS1f5GSuAAPgYb6H4qkGD7G0nd6agd++ZLX7C/JvjTB4dDJ7aTI\n\tm3sJVuKZrJ9bP/rY9+EoZLu/aOQxLjWYW2EjQ7iDbkptKfZnxGBHCz0k0UmWfimzCT\n\t9lmSpGk0e8A+oPWTupwUYMUg/6p2eRiExf2INZIs=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri, 30 Oct 2020 17:57:51 +0900","Message-Id":"<20201030085756.79329-1-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.27.0","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v4 0/5] Tracing","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Implement tracing in libcamera. Add tracepoints to Request. Also add a\npair of tracepoints for measuring time taken for IPA calls.\n\nAdd a script to show how one can analyze traces programatically. The\nscript gathers statistics on time taken for IPA calls.\n\nAdd tracing documentation.\n\nSince this series is intended to be merged before IPC, but the raspberry\npi tracepoint emission for measure IPA call time depends on the IPC\nseries, that patch has been broken off (v4).\n\nChanges in v4:\n- rebase on master instead of IPC\n- move enum tp definitions to their own files\n  - they need to be concated and won't work with #include with include\n    guards\n- broke out the raspeberry pi tracepoint emission to separate patch,\n  intended to be merged after IPC (I'll probably just append it to the\n  IPC series)\n- cosmetic changes\n\nChanges in v3:\n- add macros LIBCAMERA_TRACEPOINT_IPA_{BEGIN,END} for convenience for\n  tracing IPA calls\n  - this macro also makes it so that we can pass the pipeline and\n    function name as symbols and not strings\n- add enum tracepoint values so we get nice enum strings in the trace\n  output, instead of just ints\n- add pointer addresses to tracepoint fields so we can get addresses of\n  objects in the trace output\n- upgrade the Request tracepoints\n- fix passing const strings into tracepoints without the need to cast\n- expand and fix documentation\n\n\nPaul Elder (5):\n  libcamera: tracing: Implement tracing infrastructure\n  libcamera: request: Add tracepoints\n  tracepoints: Add pipeline tracepoints for tracing IPA calls\n  utils: tracepoints: Add simple statistics script\n  Documentation: tracing: Add tracing guide\n\n Documentation/Doxyfile.in                     |   4 +-\n Documentation/guides/tracing.rst              | 141 ++++++++++++++++++\n Documentation/index.rst                       |   1 +\n Documentation/meson.build                     |   1 +\n README.rst                                    |   3 +\n include/libcamera/internal/meson.build        |   9 ++\n include/libcamera/internal/tracepoints.h.in   |  61 ++++++++\n .../internal/tracepoints/buffer_enums.tp      |   9 ++\n .../internal/tracepoints/meson.build          |  10 ++\n .../internal/tracepoints/pipeline.tp          |  25 ++++\n .../libcamera/internal/tracepoints/request.tp |  68 +++++++++\n .../internal/tracepoints/request_enums.tp     |   9 ++\n meson.build                                   |   3 +\n meson_options.txt                             |   5 +\n src/libcamera/meson.build                     |   7 +\n src/libcamera/request.cpp                     |  11 ++\n src/libcamera/tracepoints.cpp                 |  10 ++\n utils/meson.build                             |   1 +\n utils/tracepoints/analyze-ipa-trace.py        |  77 ++++++++++\n utils/tracepoints/gen-tp-header.py            |  38 +++++\n utils/tracepoints/meson.build                 |   5 +\n 21 files changed, 497 insertions(+), 1 deletion(-)\n create mode 100644 Documentation/guides/tracing.rst\n create mode 100644 include/libcamera/internal/tracepoints.h.in\n create mode 100644 include/libcamera/internal/tracepoints/buffer_enums.tp\n create mode 100644 include/libcamera/internal/tracepoints/meson.build\n create mode 100644 include/libcamera/internal/tracepoints/pipeline.tp\n create mode 100644 include/libcamera/internal/tracepoints/request.tp\n create mode 100644 include/libcamera/internal/tracepoints/request_enums.tp\n create mode 100644 src/libcamera/tracepoints.cpp\n create mode 100755 utils/tracepoints/analyze-ipa-trace.py\n create mode 100644 utils/tracepoints/gen-tp-header.py\n create mode 100644 utils/tracepoints/meson.build"}