import rt-tests-1.10-3.el8

This commit is contained in:
CentOS Sources 2021-03-30 07:01:18 -04:00 committed by Stepan Oksanichenko
parent 5347a55959
commit b71c622bc8
9 changed files with 327 additions and 244 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

@ -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

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,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,7 +5,7 @@ Name: rt-tests
# BuildRequires: numactl-devel
# Numa argument to make: NUMA=1
#
Version: 1.8
Version: 1.10
Release: 3%{?dist}
License: GPLv2
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
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Obsoletes: cyclictest signaltest pi_tests
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
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
@ -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.
%prep
%setup -q
%setup -q -n %{name}-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -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/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
%{_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
* 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
- Fix integer overflow in queuelat
Resolves: rhbz#1803862
@ -662,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