import rt-tests-1.10-3.el8

This commit is contained in:
CentOS Sources 2021-05-18 02:48:11 -04:00 committed by Andrew Lukoshko
parent df1f80b723
commit cc4f093a57
21 changed files with 295 additions and 3566 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/rt-tests-1.8.tar.xz
SOURCES/rt-tests-1.10.tar.xz

View File

@ -1 +1 @@
50737a762ff27d6440798f10a33f720f476e1438 SOURCES/rt-tests-1.8.tar.xz
7befc28537ebfa23b989037da99dd4eb842ee9b6 SOURCES/rt-tests-1.10.tar.xz

View File

@ -1,84 +0,0 @@
From b07c57b33e4e24e873e680b8327f9be4f321caa9 Mon Sep 17 00:00:00 2001
From: Yunfeng Ye <yeyunfeng@huawei.com>
Date: Wed, 22 Apr 2020 10:19:52 +0800
Subject: [PATCH] cyclictest: Fix setaffinity error on large NUMA machines
An Error occurs when run: ./cyclictest -v -t 5 -p 80 -i 1000 -a 3
On large NUMA machines still getting the following error
WARN: Couldn't setaffinity in main thread: Invalid argument
Instead of calling numa_bitmask_alloc() with max_cpus, use
numa_allocate_cpumask() to fix this.
Also, make sure numa_available() is called before any other calls to the
numa library. Depending on how the options were invoked this could
happen in parse_cpumask for example. Note, this did not seem to cause
any problems in practice, but let's adhere to the library contract.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/cyclictest.c | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index c5f1fd46567a..79bb1cb71c68 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -1135,7 +1135,7 @@ static void use_current_cpuset(const int max_cpus)
pid = getpid();
- curmask = numa_bitmask_alloc(sizeof(struct bitmask));
+ curmask = numa_allocate_cpumask();
numa_sched_getaffinity(pid, curmask);
/* Clear bits that are not set in both the cpuset from the environment,
@@ -1225,6 +1225,20 @@ enum option_values {
OPT_TRACEMARK, OPT_POSIX_TIMERS,
};
+/* numa_available() must be called before any other calls to the numa library */
+static void numa_initialize(void)
+{
+ static int is_initialized;
+
+ if (is_initialized == 1)
+ return;
+
+ if (numa_available() != -1)
+ numa = 1;
+
+ is_initialized = 1;
+}
+
/* Process commandline options */
static void process_options (int argc, char *argv[], int max_cpus)
{
@@ -1288,6 +1302,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
/* smp sets AFFINITY_USEALL in OPT_SMP */
if (smp)
break;
+ numa_initialize();
if (optarg != NULL) {
parse_cpumask(optarg, max_cpus);
setaffinity = AFFINITY_SPECIFIED;
@@ -1460,12 +1475,9 @@ static void process_options (int argc, char *argv[], int max_cpus)
/* if smp wasn't requested, test for numa automatically */
if (!smp) {
#ifdef NUMA
- if (numa_available() != -1) {
- numa = 1;
- if (setaffinity == AFFINITY_UNSPECIFIED) {
- setaffinity = AFFINITY_USEALL;
- }
- }
+ numa_initialize();
+ if (setaffinity == AFFINITY_UNSPECIFIED)
+ setaffinity = AFFINITY_USEALL;
#else
warn("cyclictest was not built with the numa option\n");
numa = 0;
--
2.21.3

View File

@ -0,0 +1,38 @@
From 6d5aa2b00d41ecdb6eb1355309737647e177e5e6 Mon Sep 17 00:00:00 2001
From: Daniel Wagner <dwagner@suse.de>
Date: Wed, 10 Feb 2021 17:54:07 +0100
Subject: [PATCH 2/3] oslat: Use cpuset size as upper bound
To assign the threads to the correct CPU we need to use the cpuset
size as upper bound for the loop and not the number of threads.
Fixes: 85b0763dacd9 ("oslat: Use parse_cpumask() from rt-numa.h")
Reported-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/oslat/oslat.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/oslat/oslat.c b/src/oslat/oslat.c
index 7826c277f26d..2fe550b3ee12 100644
--- a/src/oslat/oslat.c
+++ b/src/oslat/oslat.c
@@ -747,9 +747,12 @@ int main(int argc, char *argv[])
n_cores = numa_bitmask_weight(cpu_set);
TEST(threads = calloc(1, n_cores * sizeof(threads[0])));
- for (i = 0; i < n_cores; ++i)
- if (numa_bitmask_isbitset(cpu_set, i) && move_to_core(i) == 0)
+ for (i = 0; n_cores && i < cpu_set->size; i++) {
+ if (numa_bitmask_isbitset(cpu_set, i) && move_to_core(i) == 0) {
threads[g.n_threads_total++].core_i = i;
+ n_cores--;
+ }
+ }
if (numa_bitmask_isbitset(cpu_set, 0) && g.rtprio)
printf("WARNING: Running SCHED_FIFO workload on CPU 0 may hang the thread\n");
--
2.26.2

View File

@ -0,0 +1,73 @@
From 29884cff6352856fee9fffecb4a715efd70e08f5 Mon Sep 17 00:00:00 2001
From: Peter Xu <peterx@redhat.com>
Date: Thu, 18 Feb 2021 14:27:29 -0500
Subject: [PATCH] oslat: Fix --cpu-list won't allow to schedule on all possible
cores
parse_cpumask() is too strict for oslat, in that use_current_cpuset() will
filter out all the cores that are not allowed for current process to run. This
seems to be unnecessary at least for oslat. For example, the bash process that
runs the oslat program may have a sched affinity of 0-2, however it's still
legal to have it start a oslat thread running on the cores outside 0-2 as long
as the follow up sched_setaffinity() will succeed.
numa_parse_cpustring_all() suites exactly for this case, which should already
have considered sysconf(_SC_NPROCESSORS_ONLN) limit. Use that instead.
Since at it, also remove initialization of cpu_set variable otherwise it's
leaked in previous parse_cpumask too: numa_parse_cpustring_all() will return a
newly allocated buffer already. Quotting from manual:
numa_parse_nodestring() parses a character string list of nodes into a bit
mask. The bit mask is allocated by numa_allocate_nodemask().
numa_parse_nodestring_all() is similar to numa_parse_nodestring, but can
parse all possible nodes, not only current nodeset.
Cc: John Kacur <jkacur@redhat.com>
Cc: Daniel Wagner <dwagner@suse.de>
Cc: Clark Williams <williams@redhat.com>
Reported-by: Pradipta Kumar Sahoo <psahoo@redhat.com>
Reported-by: Mike Stowell <mstowell@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/oslat/oslat.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/oslat/oslat.c b/src/oslat/oslat.c
index b2c5373388fb..465a694cdd1d 100644
--- a/src/oslat/oslat.c
+++ b/src/oslat/oslat.c
@@ -785,7 +785,6 @@ int main(int argc, char *argv[])
struct thread *threads;
int i, n_cores;
struct bitmask *cpu_set = NULL;
- int max_cpus = sysconf(_SC_NPROCESSORS_ONLN);
#ifdef FRC_MISSING
printf("This architecture is not yet supported. "
@@ -797,10 +796,6 @@ int main(int argc, char *argv[])
exit(1);
}
- cpu_set = numa_allocate_cpumask();
- if (!cpu_set)
- fatal("oslat: Could not allocate cpumask\n");
-
g.app_name = argv[0];
g.rtprio = 0;
g.bucket_size = BUCKET_SIZE;
@@ -817,7 +812,8 @@ int main(int argc, char *argv[])
if (!g.cpu_list)
g.cpu_list = strdup("all");
- if (parse_cpumask(g.cpu_list, max_cpus, &cpu_set) != 0)
+ cpu_set = numa_parse_cpustring_all(g.cpu_list);
+ if (!cpu_set)
fatal("oslat: parse_cpumask failed.\n");
n_cores = numa_bitmask_weight(cpu_set);
--
2.26.2

View File

@ -1,39 +0,0 @@
From 3359c4464c2a13ab04f15598b1c79040399978f5 Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com>
Date: Tue, 21 Jul 2020 16:10:22 -0500
Subject: [PATCH] pi_stress: limit the number of inversion groups to the number
of online cores
Each inversion group is three SCHED_FIFO threads, so the chances of more groups
than online cores actually getting to run is very slim. Limit the number of
groups requested to be <= the number of online cpus.
Signed-off-by: Clark Williams <williams@redhat.com>
Changing the conversion in printf to %ld since the number of online
processors is a long.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/pi_tests/pi_stress.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
index 0ed844c636cd..eba21d7727bc 100644
--- a/src/pi_tests/pi_stress.c
+++ b/src/pi_tests/pi_stress.c
@@ -1327,6 +1327,12 @@ void process_command_line(int argc, char **argv)
break;
case 'g':
ngroups = strtol(optarg, NULL, 10);
+ if (ngroups > num_processors) {
+ pi_error("the number of groups cannot exceed "
+ "the number of online processors (%ld)\n",
+ num_processors);
+ exit(-1);
+ }
pi_info("number of groups set to %d\n", ngroups);
break;
case 'r':
--
2.26.2

View File

@ -1,66 +0,0 @@
From 82aa302cc1b5fba57792dbf43721897aa3305cff Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 6 Jul 2020 13:18:40 -0400
Subject: [PATCH 4/7] rt-tests: Add a man page for get_cyclictest_snapshot
Add a man page for get_cyclictest_snapshot based on -h
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/get_cyclictest_snapshot.8 | 44 ++++++++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 src/cyclictest/get_cyclictest_snapshot.8
diff --git a/src/cyclictest/get_cyclictest_snapshot.8 b/src/cyclictest/get_cyclictest_snapshot.8
new file mode 100644
index 000000000000..e9251a8e821f
--- /dev/null
+++ b/src/cyclictest/get_cyclictest_snapshot.8
@@ -0,0 +1,44 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH GET_CYCLICTEST_SNAPSHOT 8 "July 6, 2020"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+get_cyclictest_snapshot \- Get a snapshot of running instances of cyclictest
+.SH SYNOPSIS
+.SY get_cyclictest_snapshot
+.OP [\-h]\ [\-l]\ [\-s\ [pid [pid ...]]]
+.br
+.OP [\-p\ [pid\ [pid ...]]]
+.SH OPTIONS
+Without options, this program will send USR2 to cyclictest to create a snapshot and then print it out.
+.br
+.TP
+Optional arguments:
+.TP
+.B -h, --help
+show this help message and exit
+.TP
+.B -l, --list
+list the main pid(s) of running instances of cyclictest
+.TP
+.B -s [pid [pid ...]], --snapshot [pid [pid ...]]
+take a snapshot of running instances of cyclictest
+.br
+by sending USR2 to cyclictest
+.TP
+.B -p [pid [pid ...]], --print [pid [pid ...]]
+print the snapshots
+.SH SEE ALSO
+.BR cyclictest (8),
+.SH AUTHOR
+get_cyclictest_snapshot was written by John Kacur <jkacur at redhat dot com>
--
2.21.3

View File

@ -1,29 +0,0 @@
From 7731b805fa5a38e7e2dc0e551e102d2d5e6fa8d7 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 6 Jul 2020 23:19:24 -0400
Subject: [PATCH] rt-tests: Install new man page get_cyclictest_snapshot.8
Install the new man page, get_cyclictest_snapshot.8
Signed-off-by: John Kacur <jkacur@redhat.com>
---
Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 05fc5eda71fa..be7831277c88 100644
--- a/Makefile
+++ b/Makefile
@@ -47,7 +47,8 @@ MANPAGES = src/cyclictest/cyclictest.8 \
src/queuelat/queuelat.8 \
src/sched_deadline/deadline_test.8 \
src/ssdd/ssdd.8 \
- src/sched_deadline/cyclicdeadline.8
+ src/sched_deadline/cyclicdeadline.8 \
+ src/cyclictest/get_cyclictest_snapshot.8
ifdef PYLIB
MANPAGES += src/hwlatdetect/hwlatdetect.8
--
2.21.3

View File

@ -1,29 +0,0 @@
From 89f9ce00774c02388bd29e0da05147282d24830e Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 6 Jul 2020 13:21:42 -0400
Subject: [PATCH 5/7] rt-tests: Tweak the cyclictest man page
Tweak the cyclictest man page with the .SY macro to make the cyclictest
command stand out apart from the options
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/cyclictest.8 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cyclictest/cyclictest.8 b/src/cyclictest/cyclictest.8
index 00e2d2403996..44b5d0dbcc4a 100644
--- a/src/cyclictest/cyclictest.8
+++ b/src/cyclictest/cyclictest.8
@@ -15,7 +15,7 @@
.SH NAME
cyclictest \- High resolution test program
.SH SYNOPSIS
-.B cyclictest
+.SY cyclictest
.RI "[ \-hfmnqrsvMS ] [\-a " proc " ] [\-A " align " ] [\-b " usec " ] [\-c " clock " ] [\-d " dist " ] \
[\-h " histogram " ] [\-i " intv " ] [\-l " loop " ] [\-o " red " ] [\-p " prio " ] \
[\-t " num " ] [\-D " time "] [\-w] [\-W] [\-y " policy " ] [ \-S | \-U ]"
--
2.21.3

View File

@ -1,259 +0,0 @@
From dc433f68c9f19eb0a28e0f00342dfd33f319f0fa Mon Sep 17 00:00:00 2001
From: Peter Xu <peterx@redhat.com>
Date: Mon, 17 Aug 2020 17:55:04 -0400
Subject: [PATCH 1/2] rt-tests: cyclictest: Move ftrace helpers into
rt-utils.[ch]
Then they can be further used by other programs too.
Two trivial things to mention.
Firstly, move trace_marker out of enable_trace_mark(). No functional change.
Secondly, remove the fileprefix setting in process_options(), because if
tracelimit is non-zero, fileprefix will be after all replaced by a further call
to get_debugfileprefix() in debugfs_prepare().
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/cyclictest.c | 90 +------------------------------------
src/include/rt-utils.h | 3 ++
src/lib/rt-utils.c | 82 +++++++++++++++++++++++++++++++++
3 files changed, 86 insertions(+), 89 deletions(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index eb61be394f2e..dd418939a0c2 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -219,8 +219,6 @@ static pthread_barrier_t align_barr;
static pthread_barrier_t globalt_barr;
static struct timespec globalt;
-static char *procfileprefix = "/proc/sys/kernel/";
-static char *fileprefix;
static char fifopath[MAX_PATH];
static char histfile[MAX_PATH];
@@ -330,89 +328,6 @@ static inline int64_t calctime(struct timespec t)
return time;
}
-static int trace_file_exists(char *name)
-{
- struct stat sbuf;
- char *tracing_prefix = get_debugfileprefix();
- char path[MAX_PATH];
- strcat(strcpy(path, tracing_prefix), name);
- return stat(path, &sbuf) ? 0 : 1;
-}
-
-#define TRACEBUFSIZ 1024
-static __thread char tracebuf[TRACEBUFSIZ];
-
-static void tracemark(char *fmt, ...) __attribute__((format(printf, 1, 2)));
-static void tracemark(char *fmt, ...)
-{
- va_list ap;
- int len;
-
- /* bail out if we're not tracing */
- /* or if the kernel doesn't support trace_mark */
- if (tracemark_fd < 0 || trace_fd < 0)
- return;
-
- va_start(ap, fmt);
- len = vsnprintf(tracebuf, TRACEBUFSIZ, fmt, ap);
- va_end(ap);
-
- /* write the tracemark message */
- write(tracemark_fd, tracebuf, len);
-
- /* now stop any trace */
- write(trace_fd, "0\n", 2);
-}
-
-static void open_tracemark_fd(void)
-{
- char path[MAX_PATH];
-
- /*
- * open the tracemark file if it's not already open
- */
- if (tracemark_fd < 0) {
- sprintf(path, "%s/%s", fileprefix, "trace_marker");
- tracemark_fd = open(path, O_WRONLY);
- if (tracemark_fd < 0) {
- warn("unable to open trace_marker file: %s\n", path);
- return;
- }
- }
-
- /*
- * if we're not tracing and the tracing_on fd is not open,
- * open the tracing_on file so that we can stop the trace
- * if we hit a breaktrace threshold
- */
- if (trace_fd < 0) {
- sprintf(path, "%s/%s", fileprefix, "tracing_on");
- if ((trace_fd = open(path, O_WRONLY)) < 0)
- warn("unable to open tracing_on file: %s\n", path);
- }
-}
-
-static void debugfs_prepare(void)
-{
- if (mount_debugfs(NULL))
- fatal("could not mount debugfs");
-
- fileprefix = get_debugfileprefix();
- if (!trace_file_exists("tracing_enabled") &&
- !trace_file_exists("tracing_on"))
- warn("tracing_enabled or tracing_on not found\n"
- "debug fs not mounted");
-}
-
-static void enable_trace_mark(void)
-{
- if (!trace_marker)
- return;
-
- debugfs_prepare();
- open_tracemark_fd();
-}
-
/*
* Raise the soft priority limit up to prio, if that is less than or equal
* to the hard limit
@@ -1498,9 +1413,6 @@ static void process_options (int argc, char *argv[], int max_cpus)
"on this processor\n");
}
- if (tracelimit)
- fileprefix = procfileprefix;
-
if (clocksel < 0 || clocksel > ARRAY_SIZE(clocksources))
error = 1;
@@ -2065,7 +1977,7 @@ int main(int argc, char **argv)
/* use the /dev/cpu_dma_latency trick if it's there */
set_latency_target();
- if (tracelimit)
+ if (tracelimit && trace_marker)
enable_trace_mark();
if (check_timer())
diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h
index 6ec2b2011959..51489b408e6c 100644
--- a/src/include/rt-utils.h
+++ b/src/include/rt-utils.h
@@ -27,4 +27,7 @@ pid_t gettid(void);
int parse_time_string(char *val);
+void enable_trace_mark(void);
+void tracemark(char *fmt, ...) __attribute__((format(printf, 1, 2)));
+
#endif /* __RT_UTILS.H */
diff --git a/src/lib/rt-utils.c b/src/lib/rt-utils.c
index 1998a327d036..f786588706cd 100644
--- a/src/lib/rt-utils.c
+++ b/src/lib/rt-utils.c
@@ -24,7 +24,13 @@
#include "rt-sched.h"
#include "error.h"
+#define TRACEBUFSIZ 1024
+
static char debugfileprefix[MAX_PATH];
+static char *fileprefix;
+static int trace_fd = -1;
+static int tracemark_fd = -1;
+static __thread char tracebuf[TRACEBUFSIZ];
/*
* Finds the tracing directory in a mounted debugfs
@@ -355,3 +361,79 @@ int parse_time_string(char *val)
}
return t;
}
+
+void open_tracemark_fd(void)
+{
+ char path[MAX_PATH];
+
+ /*
+ * open the tracemark file if it's not already open
+ */
+ if (tracemark_fd < 0) {
+ sprintf(path, "%s/%s", fileprefix, "trace_marker");
+ tracemark_fd = open(path, O_WRONLY);
+ if (tracemark_fd < 0) {
+ warn("unable to open trace_marker file: %s\n", path);
+ return;
+ }
+ }
+
+ /*
+ * if we're not tracing and the tracing_on fd is not open,
+ * open the tracing_on file so that we can stop the trace
+ * if we hit a breaktrace threshold
+ */
+ if (trace_fd < 0) {
+ sprintf(path, "%s/%s", fileprefix, "tracing_on");
+ if ((trace_fd = open(path, O_WRONLY)) < 0)
+ warn("unable to open tracing_on file: %s\n", path);
+ }
+}
+
+int trace_file_exists(char *name)
+{
+ struct stat sbuf;
+ char *tracing_prefix = get_debugfileprefix();
+ char path[MAX_PATH];
+ strcat(strcpy(path, tracing_prefix), name);
+ return stat(path, &sbuf) ? 0 : 1;
+}
+
+void debugfs_prepare(void)
+{
+ if (mount_debugfs(NULL))
+ fatal("could not mount debugfs");
+
+ fileprefix = get_debugfileprefix();
+ if (!trace_file_exists("tracing_enabled") &&
+ !trace_file_exists("tracing_on"))
+ warn("tracing_enabled or tracing_on not found\n"
+ "debug fs not mounted");
+}
+
+void tracemark(char *fmt, ...)
+{
+ va_list ap;
+ int len;
+
+ /* bail out if we're not tracing */
+ /* or if the kernel doesn't support trace_mark */
+ if (tracemark_fd < 0 || trace_fd < 0)
+ return;
+
+ va_start(ap, fmt);
+ len = vsnprintf(tracebuf, TRACEBUFSIZ, fmt, ap);
+ va_end(ap);
+
+ /* write the tracemark message */
+ write(tracemark_fd, tracebuf, len);
+
+ /* now stop any trace */
+ write(trace_fd, "0\n", 2);
+}
+
+void enable_trace_mark(void)
+{
+ debugfs_prepare();
+ open_tracemark_fd();
+}
--
2.26.2

View File

@ -1,32 +0,0 @@
From caaec484d88fe4dfc1f83b8ce2e2ff1167193517 Mon Sep 17 00:00:00 2001
From: Yunfeng Ye <yeyunfeng@huawei.com>
Date: Thu, 2 Jul 2020 10:22:21 +0800
Subject: [PATCH] rt-tests: cyclictest: remove the debug log "pid = xxx" in
rstat_shm_open()
The infomation "pid = xxx" is printed with other infomation on the same
line. so remove this left over debug message in rstat_shm_open().
Signed-off-by: yeyunfeng <yeyunfeng@huawei.com>
Edited the descriptioin in the log a little bit.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/cyclictest.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 79bb1cb71c68..eb61be394f2e 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -1921,7 +1921,6 @@ static int rstat_shm_open(void)
pid_t pid;
pid = getpid();
- printf("pid = %d", pid);
snprintf(shm_name, SHM_BUF_SIZE, "%s%d", "/cyclictest", pid);
--
2.21.3

View File

@ -1,76 +0,0 @@
From c7b4217ff2b04d774ee5e2728eeb5da1cba275ff Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 6 Jul 2020 16:07:17 -0400
Subject: [PATCH 7/7] rt-tests: get_cyclictest_snapshot: Warn if no cyclictest
instance found
- Print a warning if no cyclictest instance is found.
- Also fix up the method take_snapshot for the case when the user
provides a pid.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/get_cyclictest_snapshot.py | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/cyclictest/get_cyclictest_snapshot.py b/src/cyclictest/get_cyclictest_snapshot.py
index 27fc629ca53e..aed9681e4cc5 100755
--- a/src/cyclictest/get_cyclictest_snapshot.py
+++ b/src/cyclictest/get_cyclictest_snapshot.py
@@ -19,6 +19,14 @@ args = parser.parse_args()
class Snapshot:
""" Class for getting a snapshot of a running cyclictest instance """
+ warned = False
+
+ def print_warning():
+ """ print a warning one time only even if called multiple times """
+ if not Snapshot.warned:
+ Snapshot.warned = True
+ print("No cyclictest instance found")
+
def __init__(self):
self.pids = []
self.shm_files = []
@@ -36,18 +44,27 @@ class Snapshot:
def take_snapshot(self, spids=None):
""" Send USR2 to all running instances of cyclictest,
or just to a specific pid (spids) if specified. """
- for pid in self.pids:
- if (spids is None) or (pid in spids):
+ if spids is None:
+ if not self.pids:
+ Snapshot.print_warning()
+ for pid in self.pids:
+ subprocess.run(["kill", "-s", "USR2", pid])
+ else:
+ for pid in spids:
subprocess.run(["kill", "-s", "USR2", pid])
def print_pids(self):
""" Print the list of pids of running cyclictest instances. """
+ if not self.pids:
+ Snapshot.print_warning()
for pid in self.pids:
print(pid)
def print(self, spids=None):
""" Print the data in /dev/shm/cyclictest* """
if spids is None:
+ if not self.shm_files:
+ Snapshot.print_warning()
for shm_file in self.shm_files:
with open(shm_file, 'r') as f:
data = f.read()
@@ -59,6 +76,8 @@ class Snapshot:
with open(shm_file, 'r') as f:
data = f.read()
print(data)
+ else:
+ Snapshot.print_warning()
snapshot = Snapshot()
--
2.21.3

View File

@ -1,114 +0,0 @@
From 3ee764c75dd0cdb2ade1a832ed3769ed4964cd30 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Thu, 2 Jul 2020 21:19:55 -0400
Subject: [PATCH 1/7] rt-tests: improvements to the python style in
get_cyclictest_snapshot
Improvements to the python style in get_cyclictest_snapshot
- Add comments to the methods, functions, class and moduleb
- Put imports on individual lines
- Use "is" and "is not" with None insteald of == or !=
- Don't compare the length of lists to zero, to determine if they are
empty
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/cyclictest/get_cyclictest_snapshot.py | 38 +++++++++++++----------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/src/cyclictest/get_cyclictest_snapshot.py b/src/cyclictest/get_cyclictest_snapshot.py
index 7dddfc5d65b0..27fc629ca53e 100755
--- a/src/cyclictest/get_cyclictest_snapshot.py
+++ b/src/cyclictest/get_cyclictest_snapshot.py
@@ -1,9 +1,14 @@
#!/usr/bin/env python3
+""" Program to get a snapshot of a running instance of cyclictest """
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020 John Kacur <jkacur@redhat.com>
-import subprocess, signal, argparse, re, glob, sys
+import subprocess
+import argparse
+import re
+import glob
+import sys
parser = argparse.ArgumentParser(description='Get a snapshot of running instances of cyclictest')
parser.add_argument('-l', '--list', action='store_true', help='list the main pid(s) of running instances of cyclictest')
@@ -11,8 +16,8 @@ parser.add_argument('-s', '--snapshot', nargs='*', metavar='pid', help='take a s
parser.add_argument('-p', '--print', nargs='*', metavar='pid', help='print the snapshots')
args = parser.parse_args()
-
class Snapshot:
+ """ Class for getting a snapshot of a running cyclictest instance """
def __init__(self):
self.pids = []
@@ -20,6 +25,7 @@ class Snapshot:
self.refresh()
def refresh(self):
+ """ Create a list of running cyclictest instances. """
self.pids = []
self.shm_files = glob.glob('/dev/shm/cyclictest*')
self.shm_files.sort()
@@ -27,21 +33,21 @@ class Snapshot:
pid = re.search('[0-9]*$', shm_file).group()
self.pids += [pid]
- # Send USR2 to all running instances of cyclictest or just to
- # a specific pid (spid) if specified
def take_snapshot(self, spids=None):
+ """ Send USR2 to all running instances of cyclictest,
+ or just to a specific pid (spids) if specified. """
for pid in self.pids:
- if (spids == None) or (pid in spids):
- # print("kill -s USR2 ", pid)
+ if (spids is None) or (pid in spids):
subprocess.run(["kill", "-s", "USR2", pid])
def print_pids(self):
+ """ Print the list of pids of running cyclictest instances. """
for pid in self.pids:
print(pid)
- # Print the data in /dev/shm/cyclictest*
def print(self, spids=None):
- if spids == None:
+ """ Print the data in /dev/shm/cyclictest* """
+ if spids is None:
for shm_file in self.shm_files:
with open(shm_file, 'r') as f:
data = f.read()
@@ -59,17 +65,17 @@ snapshot = Snapshot()
if args.list:
snapshot.print_pids()
-if args.snapshot != None:
- if len(args.snapshot) == 0:
- snapshot.take_snapshot()
- else:
+if args.snapshot is not None:
+ if args.snapshot:
snapshot.take_snapshot(args.snapshot)
-
-if args.print != None:
- if len(args.print) == 0:
- snapshot.print()
else:
+ snapshot.take_snapshot()
+
+if args.print is not None:
+ if args.print:
snapshot.print(args.print)
+ else:
+ snapshot.print()
if len(sys.argv) == 1:
snapshot.take_snapshot()
--
2.21.3

View File

@ -0,0 +1,47 @@
From 5821269dde6a778b0af06c172bc2f19bbe324bda Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 12 Feb 2021 12:22:23 -0500
Subject: [PATCH 3/3] rt-tests: oslat: Allocate memory for cpu_set
- cpu_set is a pointer to a bitmask struct
Memory needs to be allocated for the struct, so call
numa_allocate_cpumask()
- use rt-tests fatal to exit on error conditions
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/oslat/oslat.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/oslat/oslat.c b/src/oslat/oslat.c
index 2fe550b3ee12..2a3be393a268 100644
--- a/src/oslat/oslat.c
+++ b/src/oslat/oslat.c
@@ -727,6 +727,10 @@ int main(int argc, char *argv[])
exit(1);
}
+ cpu_set = numa_allocate_cpumask();
+ if (!cpu_set)
+ fatal("oslat: Could not allocate cpumask\n");
+
g.app_name = argv[0];
g.rtprio = 0;
g.bucket_size = BUCKET_SIZE;
@@ -742,8 +746,9 @@ int main(int argc, char *argv[])
if (!g.cpu_list)
g.cpu_list = strdup("all");
- if (parse_cpumask(g.cpu_list, max_cpus, &cpu_set))
- exit(1);
+
+ if (parse_cpumask(g.cpu_list, max_cpus, &cpu_set) != 0)
+ fatal("oslat: parse_cpumask failed.\n");
n_cores = numa_bitmask_weight(cpu_set);
TEST(threads = calloc(1, n_cores * sizeof(threads[0])));
--
2.26.2

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,54 @@
From 2f4d564fb5557f7a420c183ddd3938647c231a8c Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 10 Feb 2021 22:18:41 -0500
Subject: [PATCH 1/3] rt-tests: oslat: print version string
During the streamlining of the command line options something went awry
with the version. The author of oslat wishes to always print the version
string. This allows us to just exit in the case of -v
Fixes e411219d27b1
Reported-by: Pradipta Kumar Sahoo <psahoo@redhat.com>
Reported-by: Reported-by: Peter Xu <peterx@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/oslat/oslat.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/oslat/oslat.c b/src/oslat/oslat.c
index 5b7e0d5b5d5c..7826c277f26d 100644
--- a/src/oslat/oslat.c
+++ b/src/oslat/oslat.c
@@ -512,7 +512,6 @@ static void handle_alarm(int code)
static void usage(int error)
{
- printf("oslat V %1.2f\n", VERSION);
printf("Usage:\n"
"oslat <options>\n\n"
"This is an OS latency detector by running busy loops on specified cores.\n"
@@ -657,8 +656,8 @@ static void parse_options(int argc, char *argv[])
break;
case 'v':
/*
- * Because we always dump the version even before parsing options,
- * what we need to do is to quit..
+ * We always print the version before parsing options
+ * so just exit
*/
exit(0);
break;
@@ -736,7 +735,7 @@ int main(int argc, char *argv[])
g.workload_mem_size = WORKLOAD_MEM_SIZE;
/* Run the main thread on cpu0 by default */
g.cpu_main_thread = 0;
-
+ printf("oslat V %1.2f\n", VERSION);
parse_options(argc, argv);
TEST(mlockall(MCL_CURRENT | MCL_FUTURE) == 0);
--
2.26.2

View File

@ -1,41 +0,0 @@
From 868ee948b626dced91bb98207ebd6b3a52f9fcfc Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 3 Jul 2020 13:28:39 -0400
Subject: [PATCH 2/7] rt-tests: pi_stress.8: Remove unused -t n from the
manpage
The -t option was replaced with the -D, --duration=TIME option
Remove it from the manpage as well.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/pi_tests/pi_stress.8 | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/pi_tests/pi_stress.8 b/src/pi_tests/pi_stress.8
index 5e2af6189ca1..ed03ad6187e7 100644
--- a/src/pi_tests/pi_stress.8
+++ b/src/pi_tests/pi_stress.8
@@ -15,8 +15,6 @@ pi_stress \- a stress test for POSIX Priority Inheritance mutexes
.B pi_stress
.RB [ \-i|\-\-inversions
.IR inversions ]
-.RB [ \-t|\-\-duration
-.IR seconds ]
.RB [ \-g|\-\-groups
.IR groups
.RB [ \-d|\-\-debug ]
@@ -50,10 +48,6 @@ Run for
.I n
number of inversion conditions. This is the total number of inversions
for all inversion groups. Default is \-1 for infinite.
-.IP "\-t n|\-\-duration=n"
-Run the test for
-.I n
-seconds and then terminate.
.IP "\-g n|\-\-groups=n"
The number of inversion groups to run. Defaults to 10.
.IP \-d|\-\-debug
--
2.21.3

View File

@ -1,41 +0,0 @@
From e554f3d5d95330ba0b961bc7e7ecf3a19485b1c9 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 3 Jul 2020 19:15:41 -0400
Subject: [PATCH 3/7] rt-tests: ptsematest.8: Update the ptsematest man page
The smp option should be a capital (-S)
Also fix the update synopsis to include missing and options
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/ptsematest/ptsematest.8 | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/ptsematest/ptsematest.8 b/src/ptsematest/ptsematest.8
index 8f76bca4b6a8..5ee7d694d50d 100644
--- a/src/ptsematest/ptsematest.8
+++ b/src/ptsematest/ptsematest.8
@@ -2,9 +2,9 @@
.SH "NAME"
.LP
\fBptsematest\fR \- Start two threads and measure the latency of interprocess communication with POSIX mutex.
-.SH "SYNTAX"
+.SH "SYNOPSIS"
.LP
-ptsematest [-a|-a PROC] [-b USEC] [-d DIST] [-i INTV] [-l loops] [-p PRIO] [-t|-t NUM]
+ptsematest [-a|--affinity [PROC]] [-b|--breaktrace USEC] [-d|--distance DIST] [-D|--duration TIME][-i|--interval INTV] [-l|--loops LOOPS] [-p|--prio PRIO] [-S|--smp] [-t|--threads [NUM]]
.br
.SH "DESCRIPTION"
.LP
@@ -35,7 +35,7 @@ Set the number of loops. The default is 0 (endless). This option is useful for a
.B \-p, \-\-prio=PRIO
Set the priority of the process.
.TP
-.B \-s, \-\-smp
+.B \-S, \-\-smp
SMP testing: options -a -t and same priority
.TP
.B \-t, \-\-threads[=NUM]
--
2.21.3

View File

@ -1,111 +0,0 @@
From 41a3f9e53920d50b48c04593bfa3eb0e87fcf49f Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 12 May 2020 11:02:39 -0400
Subject: [PATCH] rt-tests: queuelat: Fix storing unsigned long long in int
queuelat can occassionally hang because of overflow mixing
unsigned long long and int
Attaching to process 173912
Reading symbols from /root/rt-tests/queuelat...done.
Reading symbols from /lib64/librt.so.1...Reading symbols from /usr/lib/debug/usr/lib64/librt-2.28.so.debug...done.
done.
Reading symbols from /lib64/libpthread.so.0...Reading symbols from /usr/lib/debug/usr/lib64/libpthread-2.28.so.debug...done.
done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Reading symbols from /lib64/libc.so.6...Reading symbols from /usr/lib/debug/usr/lib64/libc-2.28.so.debug...done.
done.
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/usr/lib64/ld-2.28.so.debug...done.
done.
__memmove_avx_unaligned_erms ()
at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:254
254 rep movsb
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400c02 in account (val=18446744071562067968)
at src/queuelat/queuelat.c:93
93 buckets[bucket_nr]++;
(gdb) bt full
at src/queuelat/queuelat.c:93
bucket_nr = -193273529
a = 825932047802952
b = 825925371232340
dest = 0xf322b0
src = 0xf4e3f0
i = 45749
delta = -2147483648
loops = 50000
time = 6500
bucket_nr = 65
n = 115000
delta = 3500
at src/queuelat/queuelat.c:671
tsc_freq_mhz = 2398.5039999999999
max_queue_len_f = 159.900284
mvalue = 0x7ffc99d3021c "20000"
cvalue = 0x7ffc99d30225 "300"
pvalue = 0x7ffc99d30238 "6.1"
fvalue = 0x7ffc99d3022c "2398.504"
tvalue = 0x7ffc99d3023f "30"
qvalue = 0x0
index = 0
c = -1
Fix the above by declaring delta as an unsigned long long
Signed-off-by: John Kacur <jkacur@redhat.com>
---
src/queuelat/queuelat.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/queuelat/queuelat.c b/src/queuelat/queuelat.c
index 7e5e35768a8b..22b68a84d6ae 100644
--- a/src/queuelat/queuelat.c
+++ b/src/queuelat/queuelat.c
@@ -354,9 +354,9 @@ static void trace_write(char *buf, int len)
static void run_n(int n)
{
- u64 a, b;
+ u64 a, b, delta;
void *dest, *src;
- int i, delta, loops = 50000;
+ int i, loops = 50000;
init_buckets();
@@ -445,9 +445,8 @@ static void print_exit_info(void)
void main_loop(void)
{
- u64 a, b;
+ u64 a, b, delta;
void *dest, *src;
- int delta;
int queue_size = 0;
trace_open();
@@ -500,7 +499,7 @@ void main_loop(void)
continue;
ret = sprintf(buf, "memmove block queue_size=%d queue_dec=%d"
- " queue_inc=%d delta=%d ns\n", queue_size,
+ " queue_inc=%d delta=%llu ns\n", queue_size,
nr_packets_drain_per_block,
nr_packets_fill, delta);
trace_write(buf, ret);
@@ -536,7 +535,7 @@ static void install_signals(void)
int calculate_nr_packets_drain_per_block(void)
{
- int maxcount;
+ unsigned long long maxcount;
int i, time;
int found = 0;
int bucket_nr = find_highest_count_bucket();
--
2.21.3

View File

@ -5,8 +5,8 @@ Name: rt-tests
# BuildRequires: numactl-devel
# Numa argument to make: NUMA=1
#
Version: 1.8
Release: 11%{?dist}
Version: 1.10
Release: 3%{?dist}
License: GPLv2
Group: Development/Tools
URL: git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
@ -14,25 +14,17 @@ Source0: https://www.kernel.org/pub/linux/utils/rt-tests/%{name}-%{version}.tar.
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
ExclusiveArch: x86_64
BuildRequires: numactl-devel python3-devel
BuildRequires: gcc
BuildRequires: numactl-devel
BuildRequires: python3-devel
%{?__python3:Requires: %{__python3}}
Requires: bash bc
#Patches
Patch1: cyclictest-Fix-setaffinity-error-on-large-NUMA-machines.patch
Patch2: rt-tests-queuelat-Fix-storing-unsigned-long-long-int.patch
Patch3: rt-tests-cyclictest-remove-the-debug-log-pid-xxx-in-.patch
Patch4: rt-tests-improvements-to-the-python-style-in-get_cyc.patch
Patch5: rt-tests-pi_stress.8-Remove-unused-t-n-from-the-manp.patch
Patch6: rt-tests-ptsematest.8-Update-the-ptsematest-man-page.patch
Patch7: rt-tests-Add-a-man-page-for-get_cyclictest_snapshot.patch
Patch8: rt-tests-Tweak-the-cyclictest-man-page.patch
Patch9: rt-tests-get_cyclictest_snapshot-Warn-if-no-cyclicte.patch
Patch10: rt-tests-Install-new-man-page-get_cyclictest_snapshot.patch
Patch11: pi_stress-limit-the-number-of-inversion-groups-to-th.patch
Patch12: rt-tests-cyclictest-Move-ftrace-helpers-into-rt-util.patch
Patch13: rt-tests-oslat-Init-commit.patch
Patch14: rt-tests-oslat-Proper-reformat-of-code.patch
Patch1: rt-tests-oslat-print-version-string.patch
Patch2: oslat-Use-cpuset-size-as-upper-bound.patch
Patch3: rt-tests-oslat-Allocate-memory-for-cpu_set.patch
Patch4: oslat-allow-scheduling-on-all-possible-cores.patch
%description
rt-tests is a set of programs that test and measure various components of
@ -40,84 +32,99 @@ real-time kernel behavior. This package measures timer, signal, and hardware
latency. It also tests the functioning of priority-inheritance mutexes.
%prep
%setup -q
%setup -q -n %{name}-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%build
make NUMA=1 HAVE_PARSE_CPUSTRING_ALL=1
%set_build_flags
%make_build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{python3_sitelib}
make DESTDIR=$RPM_BUILD_ROOT prefix=/usr install
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf ${build_root}
%make_install prefix=%{_prefix}
%files
%defattr(-,root,root,-)
%{python3_sitelib}/hwlatdetect.py*
%{python3_sitelib}/__pycache__/hwlatdetect*
%caps(cap_sys_rawio+ep) /usr/bin/cyclictest
/usr/bin/pi_stress
/usr/bin/signaltest
/usr/bin/hwlatdetect
/usr/bin/rt-migrate-test
/usr/bin/pip_stress
/usr/bin/ptsematest
/usr/bin/sigwaittest
/usr/bin/svsematest
/usr/bin/pmqtest
/usr/bin/hackbench
/usr/bin/cyclicdeadline
/usr/bin/deadline_test
/usr/bin/queuelat
/usr/bin/ssdd
/usr/bin/oslat
/usr/bin/determine_maximum_mpps.sh
/usr/bin/get_cpuinfo_mhz.sh
/usr/bin/get_cyclictest_snapshot
%{_bindir}/pi_stress
%{_bindir}/signaltest
%{_bindir}/hwlatdetect
%{_bindir}/rt-migrate-test
%{_bindir}/pip_stress
%{_bindir}/ptsematest
%{_bindir}/sigwaittest
%{_bindir}/svsematest
%{_bindir}/pmqtest
%{_bindir}/hackbench
%{_bindir}/cyclicdeadline
%{_bindir}/deadline_test
%{_bindir}/queuelat
%{_bindir}/ssdd
%{_bindir}/oslat
%{_bindir}/determine_maximum_mpps.sh
%{_bindir}/get_cyclictest_snapshot
%{python3_sitelib}/get_cyclictest_snapshot.py*
%{python3_sitelib}/__pycache__/get_cyclictest_snapshot*
%doc
/usr/share/man/man8/cyclictest.8.gz
/usr/share/man/man8/hackbench.8.gz
/usr/share/man/man8/hwlatdetect.8.gz
/usr/share/man/man8/pi_stress.8.gz
/usr/share/man/man8/pmqtest.8.gz
/usr/share/man/man8/ptsematest.8.gz
/usr/share/man/man8/rt-migrate-test.8.gz
/usr/share/man/man8/signaltest.8.gz
/usr/share/man/man8/sigwaittest.8.gz
/usr/share/man/man8/svsematest.8.gz
/usr/share/man/man8/pip_stress.8.gz
/usr/share/man/man8/queuelat.8.gz
/usr/share/man/man8/deadline_test.8.gz
/usr/share/man/man8/cyclicdeadline.8.gz
/usr/share/man/man8/ssdd.8.gz
/usr/share/man/man8/oslat.8.gz
/usr/share/man/man8/get_cyclictest_snapshot.8.gz
%{_mandir}/man8/cyclictest.8.*
%{_mandir}/man8/hackbench.8.*
%{_mandir}/man8/hwlatdetect.8.*
%{_mandir}/man8/pi_stress.8.*
%{_mandir}/man8/pmqtest.8.*
%{_mandir}/man8/ptsematest.8.*
%{_mandir}/man8/rt-migrate-test.8.*
%{_mandir}/man8/signaltest.8.*
%{_mandir}/man8/sigwaittest.8.*
%{_mandir}/man8/svsematest.8.*
%{_mandir}/man8/pip_stress.8.*
%{_mandir}/man8/queuelat.8.*
%{_mandir}/man8/deadline_test.8.*
%{_mandir}/man8/cyclicdeadline.8.*
%{_mandir}/man8/ssdd.8.*
%{_mandir}/man8/oslat.8.*
%{_mandir}/man8/get_cyclictest_snapshot.8.*
%{_mandir}/man8/determine_maximum_mpps.8.*
%changelog
* Thu Aug 20 2020 John Kacur <jkacur@redhat.com> - 1.8.11
* Fri Feb 19 2021 John Kacur <jkacur@redhat.com> - 1.10-3
- parse_cpumask() is too strict for oslat, allow all possible cores
Resolves: rhbz#1926578
* Thu Feb 18 2021 John Kacur <jkacur@redhat.com> - 1.10-2
- print the version number in oslat everytime.
- use cpuset size as upper bound in loop in oslat
- allocate memory for cpu_set in oslat
Resolves: rhbz#1926578
* Mon Jan 11 2021 John Kacur <jkacur@redhat.com> - 1.10-1
- Upgrade to upstream rt-tests-1.10
Resolves: rhbz#1890556
* Wed Dec 09 2020 John Kacur <jkacur@redhat.com> - 1.9-2
- Don't compress manpages by default in the makefile
- Add a menu to determine_maximum_mpps.sh
- Add determine_maximum_mmps.8 manpage
- Remove get_cpuinfo_mhz.sh and old Makefile in queuelat dir
Resolves: rhbz#1906104
* Tue Nov 24 2020 John Kacur <jkacur@redhat.com> - 1.9-1
- Update to upstream rt-tests-1.9
- Add BuildRequires for gcc
- use set_build_flags
- use macros _bindir, _mandir and _prefix where possible
- remove unnecessary clean section, simply build and install sections
Resolves: rhbz#1894615
* Thu Aug 20 2020 John Kacur <jkacur@redhat.com> - 1.8-11
- Add SPDX license to oslat, and reformat source code to match suite
Resolves: rhbz#1870666
* Wed Aug 19 2020 John Kacur <jkacur@redhat.com> - 1.8.10
* Wed Aug 19 2020 John Kacur <jkacur@redhat.com> - 1.8-10
- Remove undated Obsoletes from the specfile
Resolves: rhbz#1870212
@ -721,7 +728,7 @@ Sebastian Andrzej Siewior (1):
* Tue Mar 16 2010 Clark Williams <williams@redhat.com> - 0.67-1
- modified specfile to add hackbench
- modified internal ftrace logic for correct tracing
- Changed rpm %description field to be more descriptive (BZ# 572323)
- Changed rpm %%description field to be more descriptive (BZ# 572323)
- from Carsten Emde <c.emde@osadl.org>
- added smp option to svsematest
- fixed policy display in cyclictest