import CS realtime-tests-2.9-1.el9

This commit is contained in:
eabdullin 2025-09-15 12:38:19 +00:00
parent 76dd577988
commit 06530c19e8
9 changed files with 16 additions and 505 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/rt-tests-2.8.tar.xz
SOURCES/rt-tests-2.9.tar.xz

View File

@ -1 +1 @@
5d0eed772fbcd6198f45b2746e0a7477366b1984 SOURCES/rt-tests-2.8.tar.xz
627114c0b2549b049df8ac6f8d662cf9ffab247c SOURCES/rt-tests-2.9.tar.xz

View File

@ -1,33 +0,0 @@
From cb0d857539d2fedc31533390021b600edb906352 Mon Sep 17 00:00:00 2001
From: Tomas Glozar <tglozar@redhat.com>
Date: Wed, 4 Dec 2024 16:40:03 +0100
Subject: [PATCH 1/2] rt-tests: Put variables in test-feature in quotes
test-feature passes several variables (OBJDIR, CFLAGS, CPPFLAGS,
LDFLAGS) to make via a shell command from inside the Makefile. If there
are spaces in either of these, it gets parsed as a second argument
to make and feature detection fails.
Add quotes around the values to prevent them being passed as multiple
arguments.
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
feature/test-feature.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/feature/test-feature.mak b/feature/test-feature.mak
index 0b3e51c..aef915a 100644
--- a/feature/test-feature.mak
+++ b/feature/test-feature.mak
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-or-later
define test-feature
-$(shell $(MAKE) OBJDIR=$(OBJDIR) CFLAGS=$(CFLAGS) CPPFLAGS=$(CPPFLAGS) LDFLAGS=$(LDFLAGS) \
+$(shell $(MAKE) OBJDIR="$(OBJDIR)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
-f feature/Makefile feature-$1 clean >/dev/null 2>/dev/null; echo $$?)
endef
--
2.43.5

View File

@ -1,45 +0,0 @@
From 623f6908ef3bc8367661a2e1440dd8c5bee91397 Mon Sep 17 00:00:00 2001
From: Tomas Glozar <tglozar@redhat.com>
Date: Wed, 4 Dec 2024 16:40:04 +0100
Subject: [PATCH 2/2] rt-tests: Handle -lcpupower flag outside LDFLAGS
The rt-tests Makefile adds -lcpupower to LDFLAGS if libcpupower support
is detected on the system. However, this does not work when LDFLAGS is
overwritten by an external source.
Add separate variable LIBCPUPOWER to contain the flag and pass it to the
cyclictest linking phase. This also avoids unnecessarily passing the
flag to the linking of other rt-tests binaries which do not use
libcpupower.
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index f656e34..0fa0928 100644
--- a/Makefile
+++ b/Makefile
@@ -43,7 +43,7 @@ PYLIB ?= $(shell python3 -m get_pylib)
ifneq ($(no_libcpupower), 1)
ifeq ($(call test-feature,libcpupower), 0)
CPPFLAGS += -DHAVE_LIBCPUPOWER_SUPPORT
-LDFLAGS += -lcpupower
+LIBCPUPOWER += -lcpupower
else
$(warning libcpupower is missing, building without --deepest-idle-state support.)
$(warning Please install libcpupower-dev/kernel-tools-libs-devel)
@@ -135,7 +135,7 @@ $(OBJDIR):
-include $(addprefix $(OBJDIR)/,$(sources:.c=.d))
cyclictest: $(OBJDIR)/cyclictest.o $(OBJDIR)/librttest.a $(OBJDIR)/librttestnuma.a
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(RTTESTNUMA)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(RTTESTNUMA) $(LIBCPUPOWER)
cyclicdeadline: $(OBJDIR)/cyclicdeadline.o $(OBJDIR)/librttest.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB)
--
2.43.5

View File

@ -1,30 +0,0 @@
From 82120b520cebfef0da5294cbdca3b056f1f110c1 Mon Sep 17 00:00:00 2001
From: Crystal Wood <crwood@redhat.com>
Date: Tue, 7 Jan 2025 17:02:28 -0500
Subject: [PATCH 2/5] rt-tests: Enable -Werror
Now that the most obvious nuisance warnings have been disabled, don't let
the actual bad stuff slip in.
Signed-off-by: Crystal Wood <crwood@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index dda29c3f5b85..26acffed8114 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,7 @@ prefix ?= /usr/local
bindir ?= $(prefix)/bin
mandir ?= $(prefix)/share/man
-CFLAGS ?= -Wall -Wno-nonnull -Wextra -Wno-sign-compare -Wno-unused-parameter
+CFLAGS ?= -Wall -Werror -Wno-nonnull -Wextra -Wno-sign-compare -Wno-unused-parameter
CPPFLAGS += -D_GNU_SOURCE -Isrc/include
LDFLAGS ?=
--
2.48.1

View File

@ -1,269 +0,0 @@
From ccbdda89d4c982daaada0a4e5745d53e93f8df4e Mon Sep 17 00:00:00 2001
From: Crystal Wood <crwood@redhat.com>
Date: Tue, 7 Jan 2025 17:02:29 -0500
Subject: [PATCH 3/5] rt-tests: Remove unused parameter annotations
These are no longer necessary with -Wno-unused-parameter
Signed-off-by: Crystal Wood <crwood@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/cyclictest.c | 11 +++++------
src/oslat/oslat.c | 4 ++--
src/pi_tests/pi_stress.c | 4 ++--
src/pmqtest/pmqtest.c | 7 +++----
src/ptsematest/ptsematest.c | 7 +++----
src/queuelat/queuelat.c | 2 +-
src/rt-migrate-test/rt-migrate-test.c | 4 ++--
src/sched_deadline/cyclicdeadline.c | 2 +-
src/signaltest/signaltest.c | 2 +-
src/sigwaittest/sigwaittest.c | 4 ++--
src/ssdd/ssdd.c | 2 +-
src/svsematest/svsematest.c | 5 +++--
12 files changed, 26 insertions(+), 28 deletions(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index b1f842096595..890da5d869c9 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -436,11 +436,10 @@ static int set_deepest_cpu_idle_state(unsigned int cpu, unsigned int deepest_sta
static inline int have_libcpupower_support(void) { return 1; }
#else
-static inline int save_cpu_idle_disable_state(__attribute__((unused)) unsigned int cpu) { return -1; }
-static inline int restore_cpu_idle_disable_state(__attribute__((unused)) unsigned int cpu) { return -1; }
+static inline int save_cpu_idle_disable_state(unsigned int cpu) { return -1; }
+static inline int restore_cpu_idle_disable_state(unsigned int cpu) { return -1; }
static inline void free_cpu_idle_disable_states(void) { }
-static inline int set_deepest_cpu_idle_state(__attribute__((unused)) unsigned int cpu,
- __attribute__((unused)) unsigned int state) { return -1; }
+static inline int set_deepest_cpu_idle_state(unsigned int cpu, unsigned int state) { return -1; }
static inline int have_libcpupower_support(void) { return 0; }
#endif /* HAVE_LIBCPUPOWER_SUPPORT */
@@ -1687,7 +1686,7 @@ static void rstat_print_stat(struct thread_param *par, int index, int verbose, i
* thread that creates a named fifo and hands out run stats when someone
* reads from the fifo.
*/
-static void *fifothread(void *param __attribute__ ((unused)))
+static void *fifothread(void *param)
{
int ret;
int fd;
@@ -1868,7 +1867,7 @@ rstat_err:
return;
}
-static void write_stats(FILE *f, void *data __attribute__ ((unused)))
+static void write_stats(FILE *f, void *data)
{
struct thread_param **par = parameters;
int i;
diff --git a/src/oslat/oslat.c b/src/oslat/oslat.c
index 0863297f2cf1..9e5a08a2fbd9 100644
--- a/src/oslat/oslat.c
+++ b/src/oslat/oslat.c
@@ -220,7 +220,7 @@ struct global {
static struct global g;
-static void workload_nop(char *dst __attribute__ ((unused)), char *src __attribute__ ((unused)), size_t size __attribute__ ((unused)))
+static void workload_nop(char *dst, char *src, size_t size)
{
/* Nop */
}
@@ -596,7 +596,7 @@ static void run_expt(struct thread *threads, int runtime_secs, bool preheat)
pthread_join(threads[i].thread_id, NULL);
}
-static void handle_alarm(int code __attribute__ ((unused)))
+static void handle_alarm(int code)
{
g.cmd = STOP;
}
diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
index 1116ee61584d..6f8c5632bdd7 100644
--- a/src/pi_tests/pi_stress.c
+++ b/src/pi_tests/pi_stress.c
@@ -388,7 +388,7 @@ int pending_interrupt(void)
* 1. report progress
* 2. check for deadlocks
*/
-void *reporter(void *arg __attribute__ ((unused)))
+void *reporter(void *arg)
{
int status;
int end = 0;
@@ -1334,7 +1334,7 @@ void summary(void)
t->tm_yday, t->tm_hour, t->tm_min, t->tm_sec);
}
-void write_stats(FILE *f, void *data __attribute__ ((unused)))
+void write_stats(FILE *f, void *data)
{
fprintf(f, " \"inversion\": %lu\n", total_inversions());
}
diff --git a/src/pmqtest/pmqtest.c b/src/pmqtest/pmqtest.c
index b21dfa0fe0cc..04e36a1ad979 100644
--- a/src/pmqtest/pmqtest.c
+++ b/src/pmqtest/pmqtest.c
@@ -418,14 +418,13 @@ static void process_options(int argc, char *argv[])
static int volatile shutdown;
-static void sighand(int sig __attribute__ ((unused)))
+static void sighand(int sig)
{
shutdown = 1;
}
-static void print_stat(FILE *fp __attribute__ ((unused)),
- struct params *receiver, struct params *sender,
- int verbose __attribute__ ((unused)), int quiet)
+static void print_stat(FILE *fp, struct params *receiver, struct params *sender,
+ int verbose, int quiet)
{
int i;
diff --git a/src/ptsematest/ptsematest.c b/src/ptsematest/ptsematest.c
index 5a29718d7bfb..d21166946f6a 100644
--- a/src/ptsematest/ptsematest.c
+++ b/src/ptsematest/ptsematest.c
@@ -321,14 +321,13 @@ static void process_options(int argc, char *argv[])
static int volatile shutdown;
-static void sighand(int sig __attribute__ ((unused)))
+static void sighand(int sig)
{
shutdown = 1;
}
-static void print_stat(FILE *fp __attribute__ ((unused)),
- struct params *receiver, struct params *sender,
- int verbose __attribute__ ((unused)), int quiet)
+static void print_stat(FILE *fp, struct params *receiver, struct params *sender,
+ int verbose, int quiet)
{
int i;
diff --git a/src/queuelat/queuelat.c b/src/queuelat/queuelat.c
index c0573897a02b..28cf7abe83ae 100644
--- a/src/queuelat/queuelat.c
+++ b/src/queuelat/queuelat.c
@@ -520,7 +520,7 @@ void main_loop(void)
free(src);
}
-void sig_handler(int sig __attribute__ ((unused)))
+void sig_handler(int sig)
{
print_exit_info();
exit(0);
diff --git a/src/rt-migrate-test/rt-migrate-test.c b/src/rt-migrate-test/rt-migrate-test.c
index 7b1917df12a3..8afe0834905b 100644
--- a/src/rt-migrate-test/rt-migrate-test.c
+++ b/src/rt-migrate-test/rt-migrate-test.c
@@ -354,7 +354,7 @@ static void print_results(void)
}
}
-static void write_stats(FILE *f, void *data __attribute__ ((unused)))
+static void write_stats(FILE *f, void *data)
{
int i;
int t;
@@ -489,7 +489,7 @@ static int check_times(int l)
return 0;
}
-static void stop_log(int sig __attribute__ ((unused)))
+static void stop_log(int sig)
{
stop = 1;
}
diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c
index 631d57ee885e..32fd0d0e280f 100644
--- a/src/sched_deadline/cyclicdeadline.c
+++ b/src/sched_deadline/cyclicdeadline.c
@@ -1073,7 +1073,7 @@ static int calc_nr_cpus(const char *setcpu, char **buf)
return -1;
}
-static void sighand(int sig __attribute__ ((unused)))
+static void sighand(int sig)
{
shutdown = 1;
}
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index 5412c50f7e17..d8cda97697cf 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -353,7 +353,7 @@ static void process_options(int argc, char *argv[], unsigned int max_cpus)
}
}
-static void sighand(int sig __attribute__ ((unused)))
+static void sighand(int sig)
{
shutdown = 1;
}
diff --git a/src/sigwaittest/sigwaittest.c b/src/sigwaittest/sigwaittest.c
index 8c1c16fb3081..026cc8151015 100644
--- a/src/sigwaittest/sigwaittest.c
+++ b/src/sigwaittest/sigwaittest.c
@@ -370,13 +370,13 @@ static void process_options(int argc, char *argv[])
static int volatile mustshutdown;
-static void sighand(int sig __attribute__ ((unused)))
+static void sighand(int sig)
{
mustshutdown = 1;
}
static void print_stat(struct params *receiver, struct params *sender,
- int verbose __attribute__ ((unused)), int quiet)
+ int verbose, int quiet)
{
int i;
diff --git a/src/ssdd/ssdd.c b/src/ssdd/ssdd.c
index 45f6a23910ca..50f74245fd48 100644
--- a/src/ssdd/ssdd.c
+++ b/src/ssdd/ssdd.c
@@ -152,7 +152,7 @@ static pid_t parent;
static int nforks = 10;
static int nsteps = 10000;
-static void sigchld(int sig __attribute__ ((unused)), siginfo_t *info __attribute__ ((unused)), void *arg __attribute__ ((unused)))
+static void sigchld(int sig, siginfo_t *info, void *arg)
{
got_sigchld = 1;
}
diff --git a/src/svsematest/svsematest.c b/src/svsematest/svsematest.c
index 3c857dcb0189..f3cddf854575 100644
--- a/src/svsematest/svsematest.c
+++ b/src/svsematest/svsematest.c
@@ -416,7 +416,7 @@ static void process_options(int argc, char *argv[])
static int volatile mustshutdown;
-static void sighand(int sig __attribute__ ((unused)))
+static void sighand(int sig)
{
mustshutdown = 1;
}
@@ -456,7 +456,8 @@ static void write_stats(FILE *f, void *data)
fprintf(f, " }\n");
}
-static void print_stat(FILE *fp __attribute__ ((unused)), struct params *receiver, struct params *sender, int verbose __attribute__ ((unused)), int quiet)
+static void print_stat(FILE *fp, struct params *receiver, struct params *sender,
+ int verbose, int quiet)
{
int i;
--
2.48.1

View File

@ -1,35 +0,0 @@
From 0a5eb38592c13d0e0f641a823df6d4f7debe5644 Mon Sep 17 00:00:00 2001
From: Crystal Wood <crwood@redhat.com>
Date: Tue, 7 Jan 2025 17:02:27 -0500
Subject: [PATCH 1/5] rt-tests: Turn off -Wunused-parameter
-Wunused-parameter (part of -Wextra) is an obnoxious warning as it flags
perfectly reasonable code that takes unneeded parameters in order to
comply with a function pointer interface, or where the parameter is used
only by code inside an ifdef, etc. This results in numerous annotations
just to shut the compiler up, all for a warning that has relatively
little value even in cases where it's not a false positive (where it's
just an indication that cleanup is warranted).
Signed-off-by: Crystal Wood <crwood@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 0fa0928bbca7..dda29c3f5b85 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,7 @@ prefix ?= /usr/local
bindir ?= $(prefix)/bin
mandir ?= $(prefix)/share/man
-CFLAGS ?= -Wall -Wno-nonnull -Wextra -Wno-sign-compare
+CFLAGS ?= -Wall -Wno-nonnull -Wextra -Wno-sign-compare -Wno-unused-parameter
CPPFLAGS += -D_GNU_SOURCE -Isrc/include
LDFLAGS ?=
--
2.48.1

View File

@ -1,81 +0,0 @@
From eea8da1647c3f7d26f3aae607475266112ab79b1 Mon Sep 17 00:00:00 2001
From: Shizhao Chen <shichen@redhat.com>
Date: Fri, 24 Jan 2025 15:51:57 +0800
Subject: [PATCH 4/5] rt-tests: pip_stress: Add option --usleep
Different hardwares have different threasholds for usleep_val to
reliably trigger an prio inversion, add option --usleep to allow
specifying it at runtime, to facilitate testing of prio inheritance
on different platforms.
Signed-off-by: Shizhao Chen <shichen@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/pi_tests/pip_stress.8 | 6 +++++-
src/pi_tests/pip_stress.c | 10 ++++++++--
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/pi_tests/pip_stress.8 b/src/pi_tests/pip_stress.8
index 0d06dd2215f8..0f65ad1c107b 100644
--- a/src/pi_tests/pip_stress.8
+++ b/src/pi_tests/pip_stress.8
@@ -5,7 +5,8 @@
.B pip_stress \- Priority Inheritance with processes
.SH SYNOPSIS
.B pip_stress
-
+.RB [ \-u|\-\-usleep
+.IR TIME ]
.SH DESCRIPTION
This program demonstrates the technique of using priority inheritance (PI)
mutexes with processes instead of threads.
@@ -41,6 +42,9 @@ merely increase the time that the low priority process sleeps while
holding the lock. (usleep);
Also note that you have to run as a user with permission to change
scheduling priorities.
+.SH OPTIONS
+.IP "\-u TIME,\-\-usleep=TIME"
+Specify the sleep time in usec of the low priority process. Defaults to 500.
.BR
.SH AUTHOR
pip_stress was written by John Kacur <jkacur at redhat.com>
diff --git a/src/pi_tests/pip_stress.c b/src/pi_tests/pip_stress.c
index fb0391bfec0d..9bd225fb155c 100644
--- a/src/pi_tests/pip_stress.c
+++ b/src/pi_tests/pip_stress.c
@@ -72,7 +72,9 @@ static void usage(int error)
printf("pip_stress V %1.2f\n", VERSION);
printf("Usage:\n"
"pip_stress <options>\n"\
- "-h --help Show this help menu.\n"
+ "-h --help Show this help menu.\n"\
+ "-u TIME --usleep=TIME Specify the sleep time in usec of the low priority process.\n"\
+ " Defaults to 500.\n"
);
exit(error);
}
@@ -88,16 +90,20 @@ int main(int argc, char *argv[])
for (;;) {
struct option long_options[] = {
{ "help", no_argument, NULL, 'h' },
+ { "usleep", required_argument, NULL, 'u' },
{ NULL, 0, NULL, 0 },
};
- int c = getopt_long(argc, argv, "s:h", long_options, NULL);
+ int c = getopt_long(argc, argv, "hu:", long_options, NULL);
if (c == -1)
break;
switch (c) {
case 'h':
usage(0);
break;
+ case 'u':
+ usleep_val = strtoul(optarg, NULL, 10);
+ break;
default:
usage(1);
break;
--
2.48.1

View File

@ -5,8 +5,8 @@ Name: realtime-tests
# BuildRequires: numactl-devel
# Numa argument to make: NUMA=1
#
Version: 2.8
Release: 4%{?dist}
Version: 2.9
Release: 1%{?dist}
License: GPLv2
URL: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
Source0: https://www.kernel.org/pub/linux/utils/rt-tests/rt-tests-%{version}.tar.xz
@ -20,14 +20,6 @@ BuildRequires: kernel-headers
BuildRequires: kernel-tools-libs-devel
Requires: bash
Requires: bc
Patch1: 0001-rt-tests-Put-variables-in-test-feature-in-quotes.patch
Patch2: 0002-rt-tests-Handle-lcpupower-flag-outside-LDFLAGS.patch
Patch3: Turn-off-Wunused-parameter.patch
Patch4: Enable-Werror.patch
Patch5: Remove-unused-parameter-annotations.patch
Patch6: pip_stress-Add-option-usleep.patch
%description
realtime-tests is a set of programs that test and measure various components of
real-time kernel behavior. This package measures timer, signal, and hardware
@ -85,6 +77,18 @@ latency. It also tests the functioning of priority-inheritance mutexes.
%{_mandir}/man8/determine_maximum_mpps.8.*
%changelog
* Wed Jul 9 2025 Tyonnchie Berry <tyberry@redhat.com> - 2.9-1
- Rebased to latest upstream version
- Dropped previously applied patches
- Cleaned up spec file
Resolves: RHEL-86704
* Thu Jun 26 2025 Tyonnchie Berry <tyberry@redhat.com> - 2.8-5
- Added patch Fix-rt-tests-build-with-glibc-2.41.patch
- Added patch Revert-Fix-rt-tests-build-with-glibc-2.41.patch
- Added patch sched_attr-Do-not-define-for-glibc-2.41.patch
Resolves: RHEL-88469
* Thu Jan 30 2025 John Kacur <jkacur@redhat.com> - 2.8-4
- Add a usleep option to pip_stress
Resolves: RHEL-77110