import rt-tests-1.10-3.el8
This commit is contained in:
parent
5347a55959
commit
b71c622bc8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/rt-tests-1.8.tar.xz
|
SOURCES/rt-tests-1.10.tar.xz
|
||||||
|
@ -1 +1 @@
|
|||||||
50737a762ff27d6440798f10a33f720f476e1438 SOURCES/rt-tests-1.8.tar.xz
|
7befc28537ebfa23b989037da99dd4eb842ee9b6 SOURCES/rt-tests-1.10.tar.xz
|
||||||
|
@ -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
|
|
||||||
|
|
38
SOURCES/oslat-Use-cpuset-size-as-upper-bound.patch
Normal file
38
SOURCES/oslat-Use-cpuset-size-as-upper-bound.patch
Normal 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
|
||||||
|
|
73
SOURCES/oslat-allow-scheduling-on-all-possible-cores.patch
Normal file
73
SOURCES/oslat-allow-scheduling-on-all-possible-cores.patch
Normal 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
|
||||||
|
|
47
SOURCES/rt-tests-oslat-Allocate-memory-for-cpu_set.patch
Normal file
47
SOURCES/rt-tests-oslat-Allocate-memory-for-cpu_set.patch
Normal 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
|
||||||
|
|
54
SOURCES/rt-tests-oslat-print-version-string.patch
Normal file
54
SOURCES/rt-tests-oslat-print-version-string.patch
Normal 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
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -5,7 +5,7 @@ Name: rt-tests
|
|||||||
# BuildRequires: numactl-devel
|
# BuildRequires: numactl-devel
|
||||||
# Numa argument to make: NUMA=1
|
# Numa argument to make: NUMA=1
|
||||||
#
|
#
|
||||||
Version: 1.8
|
Version: 1.10
|
||||||
Release: 3%{?dist}
|
Release: 3%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
@ -13,15 +13,18 @@ URL: git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
|
|||||||
Source0: https://www.kernel.org/pub/linux/utils/rt-tests/%{name}-%{version}.tar.xz
|
Source0: https://www.kernel.org/pub/linux/utils/rt-tests/%{name}-%{version}.tar.xz
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
Obsoletes: cyclictest signaltest pi_tests
|
|
||||||
ExclusiveArch: x86_64
|
ExclusiveArch: x86_64
|
||||||
BuildRequires: numactl-devel python3-devel
|
BuildRequires: gcc
|
||||||
|
BuildRequires: numactl-devel
|
||||||
|
BuildRequires: python3-devel
|
||||||
%{?__python3:Requires: %{__python3}}
|
%{?__python3:Requires: %{__python3}}
|
||||||
Requires: bash bc
|
Requires: bash bc
|
||||||
|
|
||||||
#Patches
|
#Patches
|
||||||
Patch1: cyclictest-Fix-setaffinity-error-on-large-NUMA-machines.patch
|
Patch1: rt-tests-oslat-print-version-string.patch
|
||||||
Patch2: rt-tests-queuelat-Fix-storing-unsigned-long-long-int.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
|
%description
|
||||||
rt-tests is a set of programs that test and measure various components of
|
rt-tests is a set of programs that test and measure various components of
|
||||||
@ -29,64 +32,127 @@ real-time kernel behavior. This package measures timer, signal, and hardware
|
|||||||
latency. It also tests the functioning of priority-inheritance mutexes.
|
latency. It also tests the functioning of priority-inheritance mutexes.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q -n %{name}-%{version}
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make NUMA=1 HAVE_PARSE_CPUSTRING_ALL=1
|
%set_build_flags
|
||||||
|
%make_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf ${build_root}
|
||||||
mkdir -p $RPM_BUILD_ROOT
|
%make_install prefix=%{_prefix}
|
||||||
mkdir -p $RPM_BUILD_ROOT/%{python3_sitelib}
|
|
||||||
make DESTDIR=$RPM_BUILD_ROOT prefix=/usr install
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{python3_sitelib}/hwlatdetect.py*
|
%{python3_sitelib}/hwlatdetect.py*
|
||||||
%{python3_sitelib}/__pycache__/hwlatdetect*
|
%{python3_sitelib}/__pycache__/hwlatdetect*
|
||||||
%caps(cap_sys_rawio+ep) /usr/bin/cyclictest
|
%caps(cap_sys_rawio+ep) /usr/bin/cyclictest
|
||||||
/usr/bin/pi_stress
|
%{_bindir}/pi_stress
|
||||||
/usr/bin/signaltest
|
%{_bindir}/signaltest
|
||||||
/usr/bin/hwlatdetect
|
%{_bindir}/hwlatdetect
|
||||||
/usr/bin/rt-migrate-test
|
%{_bindir}/rt-migrate-test
|
||||||
/usr/bin/pip_stress
|
%{_bindir}/pip_stress
|
||||||
/usr/bin/ptsematest
|
%{_bindir}/ptsematest
|
||||||
/usr/bin/sigwaittest
|
%{_bindir}/sigwaittest
|
||||||
/usr/bin/svsematest
|
%{_bindir}/svsematest
|
||||||
/usr/bin/pmqtest
|
%{_bindir}/pmqtest
|
||||||
/usr/bin/hackbench
|
%{_bindir}/hackbench
|
||||||
/usr/bin/cyclicdeadline
|
%{_bindir}/cyclicdeadline
|
||||||
/usr/bin/deadline_test
|
%{_bindir}/deadline_test
|
||||||
/usr/bin/queuelat
|
%{_bindir}/queuelat
|
||||||
/usr/bin/ssdd
|
%{_bindir}/ssdd
|
||||||
/usr/bin/determine_maximum_mpps.sh
|
%{_bindir}/oslat
|
||||||
/usr/bin/get_cpuinfo_mhz.sh
|
%{_bindir}/determine_maximum_mpps.sh
|
||||||
/usr/bin/get_cyclictest_snapshot
|
%{_bindir}/get_cyclictest_snapshot
|
||||||
%{python3_sitelib}/get_cyclictest_snapshot.py*
|
%{python3_sitelib}/get_cyclictest_snapshot.py*
|
||||||
%{python3_sitelib}/__pycache__/get_cyclictest_snapshot*
|
%{python3_sitelib}/__pycache__/get_cyclictest_snapshot*
|
||||||
%doc
|
%doc
|
||||||
/usr/share/man/man8/cyclictest.8.gz
|
%{_mandir}/man8/cyclictest.8.*
|
||||||
/usr/share/man/man8/hackbench.8.gz
|
%{_mandir}/man8/hackbench.8.*
|
||||||
/usr/share/man/man8/hwlatdetect.8.gz
|
%{_mandir}/man8/hwlatdetect.8.*
|
||||||
/usr/share/man/man8/pi_stress.8.gz
|
%{_mandir}/man8/pi_stress.8.*
|
||||||
/usr/share/man/man8/pmqtest.8.gz
|
%{_mandir}/man8/pmqtest.8.*
|
||||||
/usr/share/man/man8/ptsematest.8.gz
|
%{_mandir}/man8/ptsematest.8.*
|
||||||
/usr/share/man/man8/rt-migrate-test.8.gz
|
%{_mandir}/man8/rt-migrate-test.8.*
|
||||||
/usr/share/man/man8/signaltest.8.gz
|
%{_mandir}/man8/signaltest.8.*
|
||||||
/usr/share/man/man8/sigwaittest.8.gz
|
%{_mandir}/man8/sigwaittest.8.*
|
||||||
/usr/share/man/man8/svsematest.8.gz
|
%{_mandir}/man8/svsematest.8.*
|
||||||
/usr/share/man/man8/pip_stress.8.gz
|
%{_mandir}/man8/pip_stress.8.*
|
||||||
/usr/share/man/man8/queuelat.8.gz
|
%{_mandir}/man8/queuelat.8.*
|
||||||
/usr/share/man/man8/deadline_test.8.gz
|
%{_mandir}/man8/deadline_test.8.*
|
||||||
/usr/share/man/man8/cyclicdeadline.8.gz
|
%{_mandir}/man8/cyclicdeadline.8.*
|
||||||
/usr/share/man/man8/ssdd.8.gz
|
%{_mandir}/man8/ssdd.8.*
|
||||||
|
%{_mandir}/man8/oslat.8.*
|
||||||
|
%{_mandir}/man8/get_cyclictest_snapshot.8.*
|
||||||
|
%{_mandir}/man8/determine_maximum_mpps.8.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
||||||
|
- Remove undated Obsoletes from the specfile
|
||||||
|
Resolves: rhbz#1870212
|
||||||
|
|
||||||
|
* Wed Aug 19 2020 John Kacur <jkacur@redhat.com> - 1.8-9
|
||||||
|
- Add the oslat program to the rt-tests suite
|
||||||
|
Resolves: rhbz#1869882
|
||||||
|
|
||||||
|
* Wed Jul 22 2020 John Kacur <jkacur@redhat.com> - 1.8-8
|
||||||
|
- Change the conversion format to %ld for the num_processors in pi_stress
|
||||||
|
Resolves: rhbz#1859397
|
||||||
|
|
||||||
|
* Wed Jul 22 2020 John Kacur <jkacur@redhat.com> - 1.8-7
|
||||||
|
- Limit the number of inversion groups in pi_stress
|
||||||
|
Resolves: rhbz#1859397
|
||||||
|
|
||||||
|
* Mon Jul 06 2020 John Kacur <jkacur@redhat.com> - 1.8-6
|
||||||
|
- Install new man page get_cyclictest_snapshot
|
||||||
|
Resolves: rhbz#1826777
|
||||||
|
|
||||||
|
* Mon Jul 06 2020 John Kacur <jkacur@redhat.com> - 1.8-5
|
||||||
|
- get_cyclictest_snapshot: print a warning message if there are no
|
||||||
|
running cyclictest instances
|
||||||
|
Resolves: rhbz#1826783
|
||||||
|
|
||||||
|
* Mon Jul 06 2020 John Kacur <jkacur@redhat.com> - 1.8-4
|
||||||
|
- Add a get_cyclictest_snapshot man page and various small fixes
|
||||||
|
Resolves: rhbz#1826777
|
||||||
|
|
||||||
* Tue May 12 2020 John Kacur <jkacur@redhat.com> - 1.8-3
|
* Tue May 12 2020 John Kacur <jkacur@redhat.com> - 1.8-3
|
||||||
- Fix integer overflow in queuelat
|
- Fix integer overflow in queuelat
|
||||||
Resolves: rhbz#1803862
|
Resolves: rhbz#1803862
|
||||||
@ -662,7 +728,7 @@ Sebastian Andrzej Siewior (1):
|
|||||||
* Tue Mar 16 2010 Clark Williams <williams@redhat.com> - 0.67-1
|
* Tue Mar 16 2010 Clark Williams <williams@redhat.com> - 0.67-1
|
||||||
- modified specfile to add hackbench
|
- modified specfile to add hackbench
|
||||||
- modified internal ftrace logic for correct tracing
|
- 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>
|
- from Carsten Emde <c.emde@osadl.org>
|
||||||
- added smp option to svsematest
|
- added smp option to svsematest
|
||||||
- fixed policy display in cyclictest
|
- fixed policy display in cyclictest
|
||||||
|
Loading…
Reference in New Issue
Block a user