From 64c0b3552b4b1c58f9f21d888b9e37f6203cb4e8 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 29 Mar 2024 16:28:43 +0300 Subject: [PATCH] import rtla-6.6.0-1.el8 --- .gitignore | 1 + .rtla.metadata | 1 + ...tla-Fix-uninitialized-variable-found.patch | 34 ++++++ SOURCES/rtla-Use-SYS_gettid-for-gettid.patch | 50 ++++++++ SPECS/rtla.spec | 112 ++++++++++++++++++ 5 files changed, 198 insertions(+) create mode 100644 .gitignore create mode 100644 .rtla.metadata create mode 100644 SOURCES/rtla-Fix-uninitialized-variable-found.patch create mode 100644 SOURCES/rtla-Use-SYS_gettid-for-gettid.patch create mode 100644 SPECS/rtla.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..237d16e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/rtla-6.6.0.tar.bz2 diff --git a/.rtla.metadata b/.rtla.metadata new file mode 100644 index 0000000..b432d4a --- /dev/null +++ b/.rtla.metadata @@ -0,0 +1 @@ +731b218995866082bb9ff80ca719a02ecd6d7734 SOURCES/rtla-6.6.0.tar.bz2 diff --git a/SOURCES/rtla-Fix-uninitialized-variable-found.patch b/SOURCES/rtla-Fix-uninitialized-variable-found.patch new file mode 100644 index 0000000..66eacf2 --- /dev/null +++ b/SOURCES/rtla-Fix-uninitialized-variable-found.patch @@ -0,0 +1,34 @@ +From 696444a544ecd6d62c1edc89516b376cefb28929 Mon Sep 17 00:00:00 2001 +From: Colin Ian King +Date: Thu, 27 Jul 2023 16:01:17 +0100 +Subject: [PATCH] rtla: Fix uninitialized variable found + +Variable found is not being initialized, in the case where the desired +mount is not found the variable contains garbage. Fix this by initializing +it to zero. + +Link: https://lore.kernel.org/all/20230727150117.627730-1-colin.i.king@gmail.com/ + +Fixes: a957cbc02531 ("rtla: Add -C cgroup support") +Signed-off-by: Colin Ian King +Signed-off-by: Daniel Bristot de Oliveira +--- + src/utils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/utils.c b/src/utils.c +index 623a38908ed5..c769d7b3842c 100644 +--- a/src/utils.c ++++ b/src/utils.c +@@ -538,7 +538,7 @@ static const int find_mount(const char *fs, char *mp, int sizeof_mp) + { + char mount_point[MAX_PATH]; + char type[100]; +- int found; ++ int found = 0; + FILE *fp; + + fp = fopen("/proc/mounts", "r"); +-- +2.42.0 + diff --git a/SOURCES/rtla-Use-SYS_gettid-for-gettid.patch b/SOURCES/rtla-Use-SYS_gettid-for-gettid.patch new file mode 100644 index 0000000..5d8b43c --- /dev/null +++ b/SOURCES/rtla-Use-SYS_gettid-for-gettid.patch @@ -0,0 +1,50 @@ +From 07ad224f2416e7c9411fd095fef148c67011eb49 Mon Sep 17 00:00:00 2001 +From: root +Date: Wed, 20 Dec 2023 13:08:28 -0500 +Subject: [PATCH] rtla: Use SYS_gettid for gettid + +Use SYS_gettid for gettid since gittid is not available in the version +of glibc in rhel8.x + +Also add the -lpthread to the flags in the Makefile for +pthread_setname_np + +Signed-off-by: root +--- + Makefile | 2 +- + src/timerlat_u.c | 6 ++++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 2456a399eb9a..db85545e9ec1 100644 +--- a/Makefile ++++ b/Makefile +@@ -32,7 +32,7 @@ TRACEFS_HEADERS := $$($(PKG_CONFIG) --cflags libtracefs) + + CFLAGS := -O -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(MOPTS) $(WOPTS) $(TRACEFS_HEADERS) $(EXTRA_CFLAGS) + LDFLAGS := -ggdb $(EXTRA_LDFLAGS) +-LIBS := $$($(PKG_CONFIG) --libs libtracefs) ++LIBS := $$($(PKG_CONFIG) --libs libtracefs) -lpthread + + SRC := $(wildcard src/*.c) + HDR := $(wildcard src/*.h) +diff --git a/src/timerlat_u.c b/src/timerlat_u.c +index 01dbf9a6b5a5..e8d0ec92c8d2 100644 +--- a/src/timerlat_u.c ++++ b/src/timerlat_u.c +@@ -16,6 +16,12 @@ + #include + #include + ++#include ++#ifndef SYS_gettid ++#error "SYS_gettid unavailable" ++#endif ++#define gettid() ((pid_t)syscall(SYS_gettid)) ++ + #include "utils.h" + #include "timerlat_u.h" + +-- +2.43.0 + diff --git a/SPECS/rtla.spec b/SPECS/rtla.spec new file mode 100644 index 0000000..7cb0e61 --- /dev/null +++ b/SPECS/rtla.spec @@ -0,0 +1,112 @@ +Name: rtla +Version: 6.6.0 +Release: 1%{?dist} +Summary: Real-Time Linux Analysis tools + +License: GPLv2 +URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git +# The Source0 rtla-5.14.0.tar.bz2 file was created from git +# tag kernel-5.14.0-204.el9 +# and from the tools/tracing/rtla directory issuing make tarball +Source0: rtla-6.6.0.tar.bz2 + +BuildRequires: gcc +BuildRequires: python3-docutils +BuildRequires: libtraceevent-devel >= 1.5.3 +BuildRequires: libtracefs-devel >= 1.3.1 +Requires: libtraceevent >= 1.5.3 +Requires: libtracefs >= 1.3.1 + +# Patches +Patch01: rtla-Fix-uninitialized-variable-found.patch +Patch02: rtla-Use-SYS_gettid-for-gettid.patch + +%description +The rtla meta-tool includes a set of commands that aims to analyze +the real-time properties of Linux. Instead of testing Linux as a black box, +rtla leverages kernel tracing capabilities to provide precise information +about the properties and root causes of unexpected results. + + +%prep +%setup -q -n %{name}-%{version} +%patch1 -p1 +%patch2 -p1 + + +%build +%make_build + + +%install +install -d -m 755 %{buildroot}/%{_bindir} +install -m 755 rtla %{buildroot}/%{_bindir}/rtla +install -d -m 755 %{buildroot}/%{_mandir} +make DESTDIR=%{buildroot} -C Documentation clean +make DESTDIR=%{buildroot} -C Documentation +make DESTDIR=%{buildroot} -C Documentation install +(cd %{buildroot} + + ln -sf rtla ./%{_bindir}/osnoise + ln -sf rtla ./%{_bindir}/timerlat +) + + +%files +%{_bindir}/rtla +%{_bindir}/osnoise +%{_bindir}/timerlat +%doc +%{_mandir}/man1/rtla-osnoise-hist.1.gz +%{_mandir}/man1/rtla-osnoise-top.1.gz +%{_mandir}/man1/rtla-osnoise.1.gz +%{_mandir}/man1/rtla-timerlat-hist.1.gz +%{_mandir}/man1/rtla-timerlat-top.1.gz +%{_mandir}/man1/rtla-timerlat.1.gz +%{_mandir}/man1/rtla.1.gz +%{_mandir}/man1/rtla-hwnoise.1.gz + + +%changelog +* Mon Dec 18 2023 John Kacur - 6.6.0-1 +Update to rtla in linux-6.6.0 +- Add patch to use SYS_gettid and add -lpthread to the Makefile +Resolves: RHEL-10081 + +* Fri Jul 14 2023 John Kacur - 5.14.0-8 +- Add rtla hwnoise +Resolves: bz2175295 +jiraProject == RHELPLAN-150659 + +* Fri Jul 14 2023 John Kacur - 5.14.0-7 +- Add rtla timerlat auto analysis +Resolves: rhbz#2175292 +jiraProject == RHELPLAN-150657 + +* Tue May 09 2023 John Kacur - 5.14.0-6 +- Forward port the tests directory for ci testing +Resolves: rhbz#2196611 +jiraProject == RHELPLAN-156801 + +* Fri May 05 2023 John Kacur - 5.14.0-5 +- Correct commandline example +Resolves: rhbz#2189440 +jiraProject == RHELPLAN-155623 + +* Thu Jan 26 2023 John Kacur - 5.14.0-4 +- Add a gating test for rtla +Resolves: rhbz#2164877 +jiraProject == RHELPLAN-146610 + +* Thu Jan 26 2023 John Kacur - 5.14.0-3 +- Fix exit status when returning from calls to usage() +Resolves: rhbz#2161423 +jiraProject == RHELPLAN-145250 + +* Tue Dec 13 2022 John Kacur - 5.14.0-2 +- A few spec file improvements +Resolves: rhbz#2075203 +jiraProject == RHELPLAN-142262 + +* Wed Dec 07 2022 John Kacur - 5.14.0-1 +- Initial build of rtla