import rt-tests-2.1-1.el8
This commit is contained in:
parent
b71c622bc8
commit
235f04ce33
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/rt-tests-1.10.tar.xz
|
SOURCES/rt-tests-2.1.tar.xz
|
||||||
|
@ -1 +1 @@
|
|||||||
7befc28537ebfa23b989037da99dd4eb842ee9b6 SOURCES/rt-tests-1.10.tar.xz
|
36bdf18b18ba5a5a71ff81f102507d0b2015057d SOURCES/rt-tests-2.1.tar.xz
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -5,8 +5,8 @@ Name: rt-tests
|
|||||||
# BuildRequires: numactl-devel
|
# BuildRequires: numactl-devel
|
||||||
# Numa argument to make: NUMA=1
|
# Numa argument to make: NUMA=1
|
||||||
#
|
#
|
||||||
Version: 1.10
|
Version: 2.1
|
||||||
Release: 3%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
|
URL: git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
|
||||||
@ -21,10 +21,6 @@ BuildRequires: python3-devel
|
|||||||
Requires: bash bc
|
Requires: bash bc
|
||||||
|
|
||||||
#Patches
|
#Patches
|
||||||
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
|
%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
|
||||||
@ -33,10 +29,6 @@ latency. It also tests the functioning of priority-inheritance mutexes.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-%{version}
|
%setup -q -n %{name}-%{version}
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
@ -91,6 +83,10 @@ rm -rf ${build_root}
|
|||||||
%{_mandir}/man8/determine_maximum_mpps.8.*
|
%{_mandir}/man8/determine_maximum_mpps.8.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 30 2021 John Kacur <jkacur@redhat.com> - 2.1-1
|
||||||
|
- Update to rt-tests-2.1 upstream
|
||||||
|
Resolves: rhbz#1954387
|
||||||
|
|
||||||
* Fri Feb 19 2021 John Kacur <jkacur@redhat.com> - 1.10-3
|
* Fri Feb 19 2021 John Kacur <jkacur@redhat.com> - 1.10-3
|
||||||
- parse_cpumask() is too strict for oslat, allow all possible cores
|
- parse_cpumask() is too strict for oslat, allow all possible cores
|
||||||
Resolves: rhbz#1926578
|
Resolves: rhbz#1926578
|
||||||
|
Loading…
Reference in New Issue
Block a user