Rebase realtime-tests to the latest upstream

Signed-off-by: Tyonnchie Berry <tyberry@redhat.com>
This commit is contained in:
Tyonnchie Berry 2025-07-10 18:24:30 -04:00
parent 3c059c3c41
commit 740502a403
12 changed files with 10 additions and 663 deletions

1
.gitignore vendored
View File

@ -10,3 +10,4 @@
/0003-rt-tests-Remove-remaining-unnecessary-texts-after-ad.patch
/rt-tests-2.7.tar.xz
/rt-tests-2.8.tar.xz
/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,56 +0,0 @@
From d3a23a0cc76789c3083df3bad78982cd49bc4c5e Mon Sep 17 00:00:00 2001
From: Yaakov Selkowitz <yselkowi@redhat.com>
Date: Wed, 29 Jan 2025 16:46:11 -0500
Subject: [PATCH] Fix rt-tests build with glibc-2.41
The sched_*attr APIs were added to glibc
https://sourceware.org/git/?p=glibc.git;a=commit;h=21571ca0d70302909cf72707b2a7736cf12190a0
This fixes the build conflict in rt-tests with glibc-2.4
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/include/rt-sched.h | 2 ++
src/lib/rt-sched.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/src/include/rt-sched.h b/src/include/rt-sched.h
index 80171c7..dfd7f45 100644
--- a/src/include/rt-sched.h
+++ b/src/include/rt-sched.h
@@ -42,6 +42,7 @@
#define __NR_sched_getattr 275
#endif
+#if ! __GLIBC_PREREQ(2, 41)
struct sched_attr {
uint32_t size;
uint32_t sched_policy;
@@ -67,5 +68,6 @@ int sched_getattr(pid_t pid,
struct sched_attr *attr,
unsigned int size,
unsigned int flags);
+#endif
#endif /* __RT_SCHED_H__ */
diff --git a/src/lib/rt-sched.c b/src/lib/rt-sched.c
index 8023bc7..2500abd 100644
--- a/src/lib/rt-sched.c
+++ b/src/lib/rt-sched.c
@@ -14,6 +14,7 @@
#include "rt-sched.h"
+#if ! __GLIBC_PREREQ(2, 41)
int sched_setattr(pid_t pid,
const struct sched_attr *attr,
unsigned int flags)
@@ -28,3 +29,4 @@ int sched_getattr(pid_t pid,
{
return syscall(__NR_sched_getattr, pid, attr, size, flags);
}
+#endif
--
2.49.0

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,55 +0,0 @@
From 325b10a43bab7d1dfd0b061b40b764de649cbd64 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Thu, 10 Apr 2025 12:59:29 -0400
Subject: [PATCH] Revert "Fix rt-tests build with glibc-2.41"
This reverts commit d3a23a0cc76789c3083df3bad78982cd49bc4c5e.
When people backport the feature into earlier versions of glibc, then
the patches fails.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/include/rt-sched.h | 2 --
src/lib/rt-sched.c | 2 --
2 files changed, 4 deletions(-)
diff --git a/src/include/rt-sched.h b/src/include/rt-sched.h
index dfd7f45..80171c7 100644
--- a/src/include/rt-sched.h
+++ b/src/include/rt-sched.h
@@ -42,7 +42,6 @@
#define __NR_sched_getattr 275
#endif
-#if ! __GLIBC_PREREQ(2, 41)
struct sched_attr {
uint32_t size;
uint32_t sched_policy;
@@ -68,6 +67,5 @@ int sched_getattr(pid_t pid,
struct sched_attr *attr,
unsigned int size,
unsigned int flags);
-#endif
#endif /* __RT_SCHED_H__ */
diff --git a/src/lib/rt-sched.c b/src/lib/rt-sched.c
index 2500abd..8023bc7 100644
--- a/src/lib/rt-sched.c
+++ b/src/lib/rt-sched.c
@@ -14,7 +14,6 @@
#include "rt-sched.h"
-#if ! __GLIBC_PREREQ(2, 41)
int sched_setattr(pid_t pid,
const struct sched_attr *attr,
unsigned int flags)
@@ -29,4 +28,3 @@ int sched_getattr(pid_t pid,
{
return syscall(__NR_sched_getattr, pid, attr, size, flags);
}
-#endif
--
2.49.0

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

@ -1,7 +1,7 @@
Name: realtime-tests
Summary: Programs that test various rt-features
Version: 2.8
Release: 6%{?dist}
Version: 2.9
Release: 1%{?dist}
License: GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.1-or-later
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
@ -18,15 +18,6 @@ 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
Patch7: Fix-rt-tests-build-with-glibc-2.41.patch
Patch8: Revert-Fix-rt-tests-build-with-glibc-2.41.patch
Patch9: sched_attr-Do-not-define-for-glibc-2.41.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
@ -84,6 +75,12 @@ latency. It also tests the functioning of priority-inheritance mutexes.
%{_mandir}/man8/determine_maximum_mpps.8.*
%changelog
* Thu Jul 10 2025 Tyonnchie Berry <tyberry@redhat.com> - 2.9-1
- Rebased to latest upstream version
- Dropped previously applied patches
- Cleaned up spec file
Resolves: RHEL-86705
* Fri Jun 27 2025 John Kacur <jkacur@redhat.com> - 2.8-6
- Bump the release number
Resolves: RHEL-88470

View File

@ -1,47 +0,0 @@
From 30644eae4467b5a2de42b760403e2150683aff08 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 28 Jan 2025 15:08:38 -0800
Subject: [PATCH] sched_attr: Do not define for glibc >= 2.41
glibc 2.41+ has added [1] definitions for sched_setattr and sched_getattr functions
and struct sched_attr. Therefore, it needs to be checked for here as well before
defining sched_attr
Define sched_attr conditionally on SCHED_ATTR_SIZE_VER0
Fixes builds with glibc/trunk
[1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=21571ca0d70302909cf72707b2a7736cf12190a0;hp=298bc488fdc047da37482f4003023cb9adef78f8
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Clark Williams <williams@redhat.com>
Cc: John Kacur <jkacur@redhat.com>
Cc: rt-users <linux-rt-users@vger.kernel.org>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/include/rt-sched.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/include/rt-sched.h b/src/include/rt-sched.h
index 80171c7..9cf0e3a 100644
--- a/src/include/rt-sched.h
+++ b/src/include/rt-sched.h
@@ -42,6 +42,8 @@
#define __NR_sched_getattr 275
#endif
+/* sched_attr is not defined in glibc < 2.41 */
+#ifndef SCHED_ATTR_SIZE_VER0
struct sched_attr {
uint32_t size;
uint32_t sched_policy;
@@ -68,4 +70,6 @@ int sched_getattr(pid_t pid,
unsigned int size,
unsigned int flags);
+#endif /* SCHED_ATTR_SIZE_VER0 */
+
#endif /* __RT_SCHED_H__ */
--
2.49.0

View File

@ -1 +1 @@
SHA512 (rt-tests-2.8.tar.xz) = 2e33bb120ed1612d764a96a3afe2308fa21ae2cfc5f0e71a4503b6d5999d6f7ec3def74e164d3c596ee2888c379e54dd17b2908cf6a7f2dc3c20a7670160205a
SHA512 (rt-tests-2.9.tar.xz) = 7e7fe2bc8833891900c9c29ad1e0b188003bcdbd40aeb2412153fef3d5f2157a8a3964d46060e9e12ffc200e66dcfb55f78b8df3163ed33116e9b834e4f3113f