diff mbox series

[meta-oe] boot-time-analysis-tools: add boot time profiling tools

Message ID 20260715130932.1438994-1-ctheegal@qti.qualcomm.com
State New
Headers show
Series [meta-oe] boot-time-analysis-tools: add boot time profiling tools | expand

Commit Message

Chitti Babu Theegala July 15, 2026, 1:09 p.m. UTC
Add two new recipes from the CentOS Automotive SIG
boot-time-analysis-tools project to enable boot time profiling
and measurement.

boot-time-analysis-tools:
  Python-based toolset for collecting, analyzing and visualizing system
  boot timing data from the systemd journal. Provides the 'boot_timings'
  CLI utility which queries D-Bus and the systemd journal to produce
  structured boot time reports. Depends on python3-dbus and python3-systemd
  for runtime journal and D-Bus access.

cntvct-log:
  Userspace C utility built with Meson that logs ARM CNTVCT_EL0 virtual
  counter timestamps to correlate hardware-level timing with systemd boot
  events. Installs cntvct@.service as a systemd template unit (disabled
  by default) for on-demand per-instance activation. The service preset
  file (98-cntvct-log.preset) is installed for system-preset-based enablement.

Both recipes fetch from the same upstream git repository:
  https://gitlab.com/CentOS/automotive/src/boot-time-analysis-tools

Signed-off-by: Chitti Babu Theegala <ctheegal@qti.qualcomm.com>
---
 .../boot-time-analysis-tools_0.7.1.bb         | 13 +++++++++
 .../cntvct-log_0.7.1.bb                       | 27 +++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/boot-time-analysis-tools/boot-time-analysis-tools_0.7.1.bb
 create mode 100644 meta-oe/recipes-devtools/boot-time-analysis-tools/cntvct-log_0.7.1.bb
diff mbox series

Patch

diff --git a/meta-oe/recipes-devtools/boot-time-analysis-tools/boot-time-analysis-tools_0.7.1.bb b/meta-oe/recipes-devtools/boot-time-analysis-tools/boot-time-analysis-tools_0.7.1.bb
new file mode 100644
index 0000000000..00a5c8b960
--- /dev/null
+++ b/meta-oe/recipes-devtools/boot-time-analysis-tools/boot-time-analysis-tools_0.7.1.bb
@@ -0,0 +1,13 @@ 
+SUMMARY = "Boot time analysis tools from CentOS Automotive SIG"
+REQUIRED_DISTRO_FEATURES = "systemd"
+DESCRIPTION = "Tools for analyzing and visualizing system boot time"
+HOMEPAGE = "https://gitlab.com/CentOS/automotive/src/boot-time-analysis-tools"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1c2e0cc0dec0b709fe547806b55737b0"
+
+SRC_URI = "git://gitlab.com/CentOS/automotive/src/boot-time-analysis-tools.git;protocol=https;branch=main;tag=${PV}"
+SRCREV = "2409ce37e7389d8079bdb8740cb6a44b505fb8d4"
+
+inherit setuptools3 features_check
+
+RDEPENDS:${PN} = "python3-dbus python3-systemd "
diff --git a/meta-oe/recipes-devtools/boot-time-analysis-tools/cntvct-log_0.7.1.bb b/meta-oe/recipes-devtools/boot-time-analysis-tools/cntvct-log_0.7.1.bb
new file mode 100644
index 0000000000..8cf2a4c225
--- /dev/null
+++ b/meta-oe/recipes-devtools/boot-time-analysis-tools/cntvct-log_0.7.1.bb
@@ -0,0 +1,27 @@ 
+SUMMARY = "cntvct-log - ARM virtual counter boot time logger"
+DESCRIPTION = "Userspace tool to log ARM CNTVCT_EL0 counter values for boot time analysis"
+HOMEPAGE = "https://gitlab.com/CentOS/automotive/src/boot-time-analysis-tools"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=1c2e0cc0dec0b709fe547806b55737b0"
+
+SRC_URI = "git://gitlab.com/CentOS/automotive/src/boot-time-analysis-tools.git;protocol=https;branch=main;tag=${PV}"
+SRCREV = "2409ce37e7389d8079bdb8740cb6a44b505fb8d4"
+
+S = "${UNPACKDIR}/cntvct-log-${PV}/cntvct-log"
+
+inherit meson systemd
+
+# Manually install service file if meson.build doesn't handle it
+do_install:append() {
+    if [ -f ${S}/usr/lib/systemd/system/cntvct@.service ]; then
+        install -d ${D}${systemd_system_unitdir}
+        install -m 0644 ${S}/usr/lib/systemd/system/cntvct@.service \
+            ${D}${systemd_system_unitdir}/cntvct@.service
+    fi
+}
+
+SYSTEMD_SERVICE:${PN} = "cntvct@.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+# Explicitly include the service file in the package
+FILES:${PN} += "${systemd_system_unitdir}/cntvct@.service"