boot-time-analysis-tools: add boot time profiling tools

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>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Chitti Babu Theegala
2026-07-15 18:39:32 +05:30
committed by Khem Raj
parent a21f36c865
commit 50bf64d177
2 changed files with 40 additions and 0 deletions
@@ -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 "
@@ -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"