From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Giulio Benetti <giulio.benetti@benettiengineering.com>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>,
Pierre Floury <pierre.floury@gmail.com>,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
Andreas Ziegler <br015@umbiko.net>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v5 3/4] package/linux-tools: add rtla
Date: Sat, 6 Jan 2024 15:05:16 +0100 [thread overview]
Message-ID: <ZZleHINROrv0de6H@landeda> (raw)
In-Reply-To: <20231024144256.2708299-3-giulio.benetti@benettiengineering.com>
Giulio, All,
On 2023-10-24 16:42 +0200, Giulio Benetti spake thusly:
> From: Maxime Chevallier <maxime.chevallier@bootlin.com>
>
> 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 but until v5.19 it relied on libprocps
> that has been deprecated soon. So let's make it available for v5.19+.
> Rtla relies on libtracefs and libtraceevent, although libtraceevent itself
> is already a dependency for libtracefs.
>
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> [Giulio: fix install on recent Linux versions]
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> [Andreas: deal with Linux Fixups, musl, SSP]
> Signed-off-by: Andreas Ziegler <br015@umbiko.net>
> ---
[--SNIP--]
> diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
> index 451b0eeff5..4df73159be 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.19 and later has 2 new tracers, osnoise and timerlat.
> + Linux 6.3 has new tracer hwnoise. These tracers allow performing
> + latency analysis, for which the rtla tool provides wrapper
> + commands to visualize and extract latency traces and reports.
Re-reading that now, with the feedback from Andreas in my mind, I think
it is still quite confusing. So I rewrote that help text to make it more
explicit what happens.
Applied to master, thanks.
Regards,
Yann E. MORIN.
> 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..603d86722d
> --- /dev/null
> +++ b/package/linux-tools/linux-tool-rtla.mk.in
> @@ -0,0 +1,55 @@
> +################################################################################
> +#
> +# rtla
> +#
> +################################################################################
> +
> +LINUX_TOOLS += rtla
> +
> +RTLA_DEPENDENCIES = host-pkgconf libtracefs
> +RTLA_MAKE_OPTS = $(LINUX_MAKE_FLAGS) \
> + CC=$(TARGET_CC) \
> + EXTRA_CFLAGS="-D_GNU_SOURCE" \
> + LDFLAGS="$(TARGET_LDFLAGS)" \
> + PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig
> +
> +ifeq ($(BR2_TOOLCHAIN_HAS_SSP),)
> +define RTLA_DISABLE_STACK_PROTECTOR
> + $(SED) 's/-fstack-protector.* //' $(LINUX_DIR)/tools/tracing/rtla/Makefile
> +endef
> +endif
> +
> +define RTLA_LINUX_CONFIG_FIXUPS
> + $(call KCONFIG_ENABLE_OPT,CONFIG_FTRACE)
> + $(call KCONFIG_ENABLE_OPT,CONFIG_TIMERLAT_TRACER)
> + $(call KCONFIG_ENABLE_OPT,CONFIG_HIST_TRIGGERS)
> +endef
> +
> +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.19 must be used." ; \
> + exit 1 ; \
> + fi
> +
> + $(RTLA_DISABLE_STACK_PROTECTOR)
> +
> + $(TARGET_MAKE_ENV) \
> + $(MAKE) $(RTLA_MAKE_OPTS) \
> + -C $(LINUX_DIR)/tools/tracing rtla
> +endef
> +
> +# make rtla_install build and install by default documentation using rst2man
> +# but it's not available in Buildroot and we don't want manual files in target
> +# folder so let's simply install the resulting rtla binary and create symlinks
> +# like Linux does in its tools/tracing/rtla/Makefile
> +define RTLA_INSTALL_TARGET_CMDS
> + $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/tracing/rtla/rtla $(TARGET_DIR)/usr/bin
> + ln -sf rtla $(TARGET_DIR)/usr/bin/osnoise
> + ln -sf rtla $(TARGET_DIR)/usr/bin/timerlat
> +
> + # Check if hwnoise is provided or not
> + if grep -q hwnoise $(LINUX_DIR)/tools/tracing/rtla/Makefile; then \
> + ln -sf rtla $(TARGET_DIR)/usr/bin/hwnoise ; \
> + fi
> +endef
> --
> 2.34.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2024-01-06 14:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-24 14:42 [Buildroot] [PATCH v5 1/4] package/libtraceevent: new package Giulio Benetti
2023-10-24 14:42 ` [Buildroot] [PATCH v5 2/4] package/libtracefs: " Giulio Benetti
2024-01-06 14:02 ` Yann E. MORIN
2023-10-24 14:42 ` [Buildroot] [PATCH v5 3/4] package/linux-tools: add rtla Giulio Benetti
2024-01-06 14:05 ` Yann E. MORIN [this message]
2024-01-06 14:07 ` Yann E. MORIN
2023-10-24 14:42 ` [Buildroot] [PATCH v5 4/4] package/trace-cmd: bump to 3.1.7 Giulio Benetti
2024-01-06 14:08 ` Yann E. MORIN
2024-01-06 14:01 ` [Buildroot] [PATCH v5 1/4] package/libtraceevent: new package Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZZleHINROrv0de6H@landeda \
--to=yann.morin.1998@free.fr \
--cc=br015@umbiko.net \
--cc=buildroot@buildroot.org \
--cc=eric.le.bihan.dev@free.fr \
--cc=giulio.benetti@benettiengineering.com \
--cc=maxime.chevallier@bootlin.com \
--cc=pierre.floury@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox