rt-tests: cyclictest: Ignore inherited affinity when applying new affinity
cyclictest: Ignore inherited affinity when applying new affinity - Fix parsing of affinity - Ignore the runtime cpumask if a new cpumask is requested Resolves: rhbz#2050244 Signed-off-by: John Kacur <jkacur@redhat.com>
This commit is contained in:
parent
52d9dd381b
commit
c9b4cf7736
@ -6,7 +6,7 @@ Name: realtime-tests
|
|||||||
# Numa argument to make: NUMA=1
|
# Numa argument to make: NUMA=1
|
||||||
#
|
#
|
||||||
Version: 2.3
|
Version: 2.3
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
|
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
|
Source0: https://www.kernel.org/pub/linux/utils/rt-tests/rt-tests-%{version}.tar.xz
|
||||||
@ -22,6 +22,8 @@ Requires: bc
|
|||||||
#Patches
|
#Patches
|
||||||
Patch1: rt-numa-Correct-the-comment-of-numa_initialize.patch
|
Patch1: rt-numa-Correct-the-comment-of-numa_initialize.patch
|
||||||
Patch2: rt-tests-oslat.8-Remove-the-argument-of-bias.patch
|
Patch2: rt-tests-oslat.8-Remove-the-argument-of-bias.patch
|
||||||
|
Patch3: rt-tests-Fix-parsing-of-affinity-when-there-is-a-spa.patch
|
||||||
|
Patch4: rt-numa-ignore-runtime-cpumask-if-a-CPULIST-is-speci.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
realtime-tests is a set of programs that test and measure various components of
|
realtime-tests is a set of programs that test and measure various components of
|
||||||
@ -32,6 +34,8 @@ latency. It also tests the functioning of priority-inheritance mutexes.
|
|||||||
%setup -q -n rt-tests-%{version}
|
%setup -q -n rt-tests-%{version}
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
@ -82,6 +86,11 @@ latency. It also tests the functioning of priority-inheritance mutexes.
|
|||||||
%{_mandir}/man8/determine_maximum_mpps.8.*
|
%{_mandir}/man8/determine_maximum_mpps.8.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 3 2022 John Kacur <jkacur@redhat.com> - 2.3-2
|
||||||
|
- Fix parsing of affinity
|
||||||
|
- Ignore the runtime cpumask if a new cpumask is requested
|
||||||
|
Resolves: rhbz#2050244
|
||||||
|
|
||||||
* Thu Jan 13 2022 Leah Leshchinsky <lleshchi@redhat.com> - 2.3-1
|
* Thu Jan 13 2022 Leah Leshchinsky <lleshchi@redhat.com> - 2.3-1
|
||||||
- Update to latest upstream 2.3
|
- Update to latest upstream 2.3
|
||||||
- Correct the comment of numa_initialize()
|
- Correct the comment of numa_initialize()
|
||||||
|
48
rt-numa-ignore-runtime-cpumask-if-a-CPULIST-is-speci.patch
Normal file
48
rt-numa-ignore-runtime-cpumask-if-a-CPULIST-is-speci.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From 795433f50f20ef7598db5cfe991b5386e4080d41 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marcelo Tosatti <mtosatti@redhat.com>
|
||||||
|
Date: Fri, 28 Jan 2022 15:39:59 -0300
|
||||||
|
Subject: [PATCH 2/2] rt-numa: ignore runtime cpumask if -a CPULIST is
|
||||||
|
specified
|
||||||
|
|
||||||
|
When using isolcpus kernel command line option, the CPUs
|
||||||
|
specified at isolcpus= are not part of the run time environment
|
||||||
|
cpumask.
|
||||||
|
|
||||||
|
This causes "cyclictest -a isolatedcpus" to fail with:
|
||||||
|
|
||||||
|
WARN: Couldn't setaffinity in main thread: Invalid argument
|
||||||
|
FATAL: No allowable cpus to run on
|
||||||
|
# /dev/cpu_dma_latency set to 0us
|
||||||
|
|
||||||
|
To fix this, ignore the runtime cpumask if neither "+", "!"
|
||||||
|
are specified in the cpu list string.
|
||||||
|
|
||||||
|
Suggested by Sebastian Andrzej Siewior.
|
||||||
|
|
||||||
|
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
|
||||||
|
|
||||||
|
v2: fix changelog typo
|
||||||
|
v3: simplified version (John Kacur)
|
||||||
|
|
||||||
|
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||||
|
---
|
||||||
|
src/lib/rt-numa.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/lib/rt-numa.c b/src/lib/rt-numa.c
|
||||||
|
index ee5ab99684d8..3eead80c3b2b 100644
|
||||||
|
--- a/src/lib/rt-numa.c
|
||||||
|
+++ b/src/lib/rt-numa.c
|
||||||
|
@@ -131,7 +131,8 @@ int parse_cpumask(char *str, int max_cpus, struct bitmask **cpumask)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- use_current_cpuset(max_cpus, mask);
|
||||||
|
+ if (strchr(str, '!') != NULL || strchr(str, '+') != NULL)
|
||||||
|
+ use_current_cpuset(max_cpus, mask);
|
||||||
|
*cpumask = mask;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
65
rt-tests-Fix-parsing-of-affinity-when-there-is-a-spa.patch
Normal file
65
rt-tests-Fix-parsing-of-affinity-when-there-is-a-spa.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
From 4fac6f28af3aec1c88f19bf96ef73541c1ae5858 Mon Sep 17 00:00:00 2001
|
||||||
|
From: John Kacur <jkacur@redhat.com>
|
||||||
|
Date: Fri, 28 Jan 2022 12:50:22 -0500
|
||||||
|
Subject: [PATCH 1/2] rt-tests: Fix parsing of affinity when there is a space.
|
||||||
|
|
||||||
|
Make sure that -a all and -a '+' are passed to parse_cpumask().
|
||||||
|
Currently this doesn't work correctly if there is a space after -a and the
|
||||||
|
string.
|
||||||
|
|
||||||
|
While we are at it, fix the message in oslat which calls
|
||||||
|
numa_parse_cpustring_all directly to say that.
|
||||||
|
|
||||||
|
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||||
|
---
|
||||||
|
src/cyclictest/cyclictest.c | 4 +++-
|
||||||
|
src/oslat/oslat.c | 2 +-
|
||||||
|
src/signaltest/signaltest.c | 4 +++-
|
||||||
|
3 files changed, 7 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
|
||||||
|
index 490aedb54c03..c9ed9e08f6e1 100644
|
||||||
|
--- a/src/cyclictest/cyclictest.c
|
||||||
|
+++ b/src/cyclictest/cyclictest.c
|
||||||
|
@@ -1035,7 +1035,9 @@ static void process_options(int argc, char *argv[], int max_cpus)
|
||||||
|
} else if (optind < argc &&
|
||||||
|
(atoi(argv[optind]) ||
|
||||||
|
argv[optind][0] == '0' ||
|
||||||
|
- argv[optind][0] == '!')) {
|
||||||
|
+ argv[optind][0] == '!' ||
|
||||||
|
+ argv[optind][0] == '+' ||
|
||||||
|
+ argv[optind][0] == 'a')) {
|
||||||
|
parse_cpumask(argv[optind], max_cpus, &affinity_mask);
|
||||||
|
setaffinity = AFFINITY_SPECIFIED;
|
||||||
|
} else {
|
||||||
|
diff --git a/src/oslat/oslat.c b/src/oslat/oslat.c
|
||||||
|
index 50ddc81463ea..aa0e9a79e3b4 100644
|
||||||
|
--- a/src/oslat/oslat.c
|
||||||
|
+++ b/src/oslat/oslat.c
|
||||||
|
@@ -850,7 +850,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
cpu_set = numa_parse_cpustring_all(g.cpu_list);
|
||||||
|
if (!cpu_set)
|
||||||
|
- fatal("oslat: parse_cpumask failed.\n");
|
||||||
|
+ fatal("oslat: numa_parse_cpustring_all failed.\n");
|
||||||
|
n_cores = numa_bitmask_weight(cpu_set);
|
||||||
|
|
||||||
|
TEST(threads = calloc(1, n_cores * sizeof(threads[0])));
|
||||||
|
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
|
||||||
|
index 4d89a1aba9d9..1cf03931b5bf 100644
|
||||||
|
--- a/src/signaltest/signaltest.c
|
||||||
|
+++ b/src/signaltest/signaltest.c
|
||||||
|
@@ -261,7 +261,9 @@ static void process_options(int argc, char *argv[], unsigned int max_cpus)
|
||||||
|
} else if (optind < argc &&
|
||||||
|
(atoi(argv[optind]) ||
|
||||||
|
argv[optind][0] == '0' ||
|
||||||
|
- argv[optind][0] == '!')) {
|
||||||
|
+ argv[optind][0] == '!' ||
|
||||||
|
+ argv[optind][0] == '+' ||
|
||||||
|
+ argv[optind][0] == 'a')) {
|
||||||
|
parse_cpumask(argv[optind], max_cpus, &affinity_mask);
|
||||||
|
setaffinity = AFFINITY_SPECIFIED;
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user