Message ID | 20230130144655.1193660-4-maxime.chevallier@bootlin.com |
---|---|
State | Changes Requested |
Headers | show |
Series | introduce the rtla package and its dependencies | expand |
Maxime, All, On 2023-01-30 15:46 +0100, Maxime Chevallier via buildroot spake thusly: > The RealTime Linux Analysis tool includes a set of commands that relies > on the osnoise and timerlat tracers from the ftrace kernel subsystem, > allowing to analyze the lantency sources coming from the hardware and > the kernel itself. > > This tool was introduced in v5.17, and relies on libtracefs and > libtraceevent, although libtraceevent itself is already a dependency for > libtracefs. > > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> > --- [--SNIP--] > diff --git a/package/linux-tools/linux-tool-rtla.mk.in b/package/linux-tools/linux-tool-rtla.mk.in > new file mode 100644 > index 0000000000..a736e3b785 > --- /dev/null > +++ b/package/linux-tools/linux-tool-rtla.mk.in > @@ -0,0 +1,32 @@ > +################################################################################ > +# > +# rtla > +# > +################################################################################ > + > +LINUX_TOOLS += rtla > + > +RTLA_DEPENDENCIES = host-pkgconf libtracefs > +RTLA_MAKE_OPTS = $(LINUX_MAKE_FLAGS) \ > + CC=$(TARGET_CC) \ > + LDFLAGS="$(TARGET_LDFLAGS)" \ > + PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig For multi-line assignment, start first assignment on its own line as well: RTLA_MAKE_OPTS = \ $(LINUX_MAKE_FLAGS) \ CC=$(TARGET_CC) \ LDFLAGS="$(TARGET_LDFLAGS)" \ PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig > +define RTLA_BUILD_CMDS > + $(Q)if ! grep install $(LINUX_DIR)/tools/tracing/rtla/Makefile >/dev/null 2>&1 ; then \ > + echo "Your kernel version is too old and does not implement the rtla tool." ; \ > + echo "At least kernel 5.17 must be used." ; \ > + exit 1 ; \ > + fi > + > + $(TARGET_MAKE_ENV) \ > + $(MAKE) $(RTLA_MAKE_OPTS) \ > + -C $(LINUX_DIR)/tools/tracing rtla Similarly to libtraceevent and libtracefs, indent the continuation lines. Also, keep coommon arguments in the same order for all _CMDS. I've marked the whole series as Changes Requested. Sorry for the long delay on providing that review... :-( Regards, Yann E. MORIN. > +endef > + > +define RTLA_INSTALL_TARGET_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/tracing \ > + $(RTLA_MAKE_OPTS) \ > + DESTDIR=$(TARGET_DIR) \ > + rtla_install > +endef > -- > 2.39.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/DEVELOPERS b/DEVELOPERS index fe7194f817..8f459c796a 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2109,6 +2109,7 @@ F: package/timescaledb/ N: Maxime Chevallier <maxime.chevallier@bootlin.com> F: package/libtraceevent/ F: package/libtracefs +F: package/linux-tools/linux-tool-rtla.mk.in N: Michael Durrant <mdurrant@arcturusnetworks.com> F: board/arcturus/ diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in index 8a0b6d5802..186392b816 100644 --- a/package/linux-tools/Config.in +++ b/package/linux-tools/Config.in @@ -102,6 +102,16 @@ config BR2_PACKAGE_LINUX_TOOLS_PERF_NEEDS_HOST_PYTHON3 endif +config BR2_PACKAGE_LINUX_TOOLS_RTLA + bool "rtla" + select BR2_PACKAGE_LINUX_TOOLS + select BR2_PACKAGE_LIBTRACEFS + help + Linux 5.17 and later has 2 new tracers, osnoise and timerlat. + There tracers allow performing latency analysis, for which + the rtla tool provides wrapper commands to visualize and + extrace latency traces and reports. + config BR2_PACKAGE_LINUX_TOOLS_SELFTESTS bool"selftests" depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash diff --git a/package/linux-tools/linux-tool-rtla.mk.in b/package/linux-tools/linux-tool-rtla.mk.in new file mode 100644 index 0000000000..a736e3b785 --- /dev/null +++ b/package/linux-tools/linux-tool-rtla.mk.in @@ -0,0 +1,32 @@ +################################################################################ +# +# rtla +# +################################################################################ + +LINUX_TOOLS += rtla + +RTLA_DEPENDENCIES = host-pkgconf libtracefs +RTLA_MAKE_OPTS = $(LINUX_MAKE_FLAGS) \ + CC=$(TARGET_CC) \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig + +define RTLA_BUILD_CMDS + $(Q)if ! grep install $(LINUX_DIR)/tools/tracing/rtla/Makefile >/dev/null 2>&1 ; then \ + echo "Your kernel version is too old and does not implement the rtla tool." ; \ + echo "At least kernel 5.17 must be used." ; \ + exit 1 ; \ + fi + + $(TARGET_MAKE_ENV) \ + $(MAKE) $(RTLA_MAKE_OPTS) \ + -C $(LINUX_DIR)/tools/tracing rtla +endef + +define RTLA_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/tracing \ + $(RTLA_MAKE_OPTS) \ + DESTDIR=$(TARGET_DIR) \ + rtla_install +endef
The RealTime Linux Analysis tool includes a set of commands that relies on the osnoise and timerlat tracers from the ftrace kernel subsystem, allowing to analyze the lantency sources coming from the hardware and the kernel itself. This tool was introduced in v5.17, and relies on libtracefs and libtraceevent, although libtraceevent itself is already a dependency for libtracefs. Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> --- DEVELOPERS | 1 + package/linux-tools/Config.in | 10 +++++++ package/linux-tools/linux-tool-rtla.mk.in | 32 +++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 package/linux-tools/linux-tool-rtla.mk.in