From f954b045d082ec247ea977651add9a6ff56d7f8e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 17 May 2022 04:36:43 -0400 Subject: [PATCH] import rteval-3.3-4.el9_0 --- .gitignore | 1 + .rteval.metadata | 1 + ...trict-measurement-threads-to-inherit.patch | 51 ++ ...-for-python3.6-where-text-True-is-no.patch | 53 ++ ...dconfig-build-on-machines-that-don-t.patch | 31 + ...Fix-test-misses-threshold-assignment.patch | 32 + ...er-doesn-t-specify-a-cpumask-use-the.patch | 34 + ...se-default-buckets-from-2000-to-3500.patch | 60 ++ SPECS/rteval.spec | 720 ++++++++++++++++++ 9 files changed, 983 insertions(+) create mode 100644 .gitignore create mode 100644 .rteval.metadata create mode 100644 SOURCES/rteval-Don-t-restrict-measurement-threads-to-inherit.patch create mode 100644 SOURCES/rteval-Fix-Popen-for-python3.6-where-text-True-is-no.patch create mode 100644 SOURCES/rteval-Fix-allmodconfig-build-on-machines-that-don-t.patch create mode 100644 SOURCES/rteval-Fix-test-misses-threshold-assignment.patch create mode 100644 SOURCES/rteval-If-the-user-doesn-t-specify-a-cpumask-use-the.patch create mode 100644 SOURCES/rteval-Increase-default-buckets-from-2000-to-3500.patch create mode 100644 SPECS/rteval.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e62a00 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/rteval-3.3.tar.xz diff --git a/.rteval.metadata b/.rteval.metadata new file mode 100644 index 0000000..6abb67a --- /dev/null +++ b/.rteval.metadata @@ -0,0 +1 @@ +557793c55592bfb3dc0e858274895af4347a2fe9 SOURCES/rteval-3.3.tar.xz diff --git a/SOURCES/rteval-Don-t-restrict-measurement-threads-to-inherit.patch b/SOURCES/rteval-Don-t-restrict-measurement-threads-to-inherit.patch new file mode 100644 index 0000000..b4a8f80 --- /dev/null +++ b/SOURCES/rteval-Don-t-restrict-measurement-threads-to-inherit.patch @@ -0,0 +1,51 @@ +From 75667f4b92e3120bced7ae5464d97941edffd802 Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Mon, 7 Feb 2022 16:09:13 -0500 +Subject: [PATCH] rteval: Don't restrict measurement threads to inherited + cpumask + +This patch reverses be811d28a471cfcaf7960289e00960e7f5b18f03 + +This patch syncs rteval to 795433f50f20ef7598db5cfe991b5386e4080d41 in +rt-tests + +If the user does not specify a cpumask, rteval will still run on the +cpus according to the cpumask inherited from the runtime environment. +However, if the user specifies a cpumask, then it will overwrite the +runtime environment where allowed. + +This will allow the user to run measurement threads on isolated cpus. + +Signed-off-by: John Kacur +--- + rteval/modules/measurement/cyclictest.py | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py +index 5330d1466302..4ca310bf7490 100644 +--- a/rteval/modules/measurement/cyclictest.py ++++ b/rteval/modules/measurement/cyclictest.py +@@ -217,19 +217,9 @@ class Cyclictest(rtevalModulePrototype): + else: + self.__cpus = online_cpus() + +- # Sort the list of cpus to align with the order reported by +- # cyclictest ++ # Sort the list of cpus to align with the order reported by cyclictest + self.__cpus.sort(key=int) + +- # Get the cpuset from the environment +- cpuset = os.sched_getaffinity(0) +- +- # Convert the elements to strings +- cpuset = [str(c) for c in cpuset] +- +- # Only include cpus that are in the cpuset +- self.__cpus = [c for c in self.__cpus if c in cpuset] +- + self.__numcores = len(self.__cpus) + + info = cpuinfo() +-- +2.34.1 + diff --git a/SOURCES/rteval-Fix-Popen-for-python3.6-where-text-True-is-no.patch b/SOURCES/rteval-Fix-Popen-for-python3.6-where-text-True-is-no.patch new file mode 100644 index 0000000..f89b8ee --- /dev/null +++ b/SOURCES/rteval-Fix-Popen-for-python3.6-where-text-True-is-no.patch @@ -0,0 +1,53 @@ +From cb8b42e3328f9a06b5a18dda64969f16196b9190 Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Tue, 18 Jan 2022 15:03:36 -0500 +Subject: [PATCH 1/2] rteval: Fix Popen for python3.6 where text=True is not + available + +Fix using text=True in Popen for python-3.6 by using +encoding='utf-8' instead + +Signed-off-by: John Kacur +--- + rteval/sysinfo/services.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/rteval/sysinfo/services.py b/rteval/sysinfo/services.py +index e5de22efc342..c85980e19165 100644 +--- a/rteval/sysinfo/services.py ++++ b/rteval/sysinfo/services.py +@@ -62,11 +62,11 @@ class SystemServices: + if not [1 for p in reject if fnmatch.fnmatch(servicename, p)] \ + and os.access(service, os.X_OK): + cmd = '%s -qs "\(^\|\W\)status)" %s' % (getcmdpath('grep'), service) +- c = subprocess.Popen(cmd, shell=True, text=True) ++ c = subprocess.Popen(cmd, shell=True, encoding='utf-8') + c.wait() + if c.returncode == 0: + cmd = ['env', '-i', 'LANG="%s"' % os.environ['LANG'], 'PATH="%s"' % os.environ['PATH'], 'TERM="%s"' % os.environ['TERM'], service, 'status'] +- c = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) ++ c = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8') + c.wait() + if c.returncode == 0 and (c.stdout.read() or c.stderr.read()): + ret_services[servicename] = 'running' +@@ -81,7 +81,7 @@ class SystemServices: + ret_services = {} + cmd = '%s list-unit-files -t service --no-legend' % getcmdpath('systemctl') + self.__log(Log.DEBUG, "cmd: %s" % cmd) +- c = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) ++ c = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8') + for p in c.stdout: + # p are lines like b'servicename.service status' + v = p.strip().split() +@@ -91,7 +91,7 @@ class SystemServices: + + def services_get(self): + cmd = [getcmdpath('ps'), '-ocomm=', '1'] +- c = subprocess.Popen(cmd, stdout=subprocess.PIPE, text=True) ++ c = subprocess.Popen(cmd, stdout=subprocess.PIPE, encoding='utf-8') + self.__init = c.stdout.read().strip() + if self.__init == 'systemd': + self.__log(Log.DEBUG, "Using systemd to get services status") +-- +2.35.1 + diff --git a/SOURCES/rteval-Fix-allmodconfig-build-on-machines-that-don-t.patch b/SOURCES/rteval-Fix-allmodconfig-build-on-machines-that-don-t.patch new file mode 100644 index 0000000..ca48cde --- /dev/null +++ b/SOURCES/rteval-Fix-allmodconfig-build-on-machines-that-don-t.patch @@ -0,0 +1,31 @@ +From 5931ace285305edbf8c86508f89869c5f3be0bf0 Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Wed, 9 Mar 2022 14:03:10 -0500 +Subject: [PATCH 2/2] rteval: Fix allmodconfig build on machines that don't + allow sha1 signing + +rteval compiles the kernel using allmodconfig as a load. +This can be a problem if sha1 signing of modules is disabled. +Fix this by signing with sha512 + +Suggested-by: Juri Lelli +Signed-off-by: John Kacur +--- + rteval/modules/loads/kcompile.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py +index 8f97d38eca56..367f8dc1ca86 100644 +--- a/rteval/modules/loads/kcompile.py ++++ b/rteval/modules/loads/kcompile.py +@@ -66,6 +66,7 @@ class KBuildJob: + + self.runcmd = f"make O={self.objdir} -C {self.kdir} -j{self.jobs}" + self.cleancmd = f"make O={self.objdir} -C {self.kdir} clean allmodconfig" ++ self.cleancmd += f"&& pushd {self.objdir} && {self.kdir}/scripts/config -d CONFIG_MODULE_SIG_SHA1 -e CONFIG_MODULE_SIG_SHA512 && popd && make O={self.objdir} -C {self.kdir} olddefconfig" + if self.binder: + self.runcmd = self.binder + " " + self.runcmd + self.cleancmd = self.binder + " " + self.cleancmd +-- +2.35.1 + diff --git a/SOURCES/rteval-Fix-test-misses-threshold-assignment.patch b/SOURCES/rteval-Fix-test-misses-threshold-assignment.patch new file mode 100644 index 0000000..cb9fe3b --- /dev/null +++ b/SOURCES/rteval-Fix-test-misses-threshold-assignment.patch @@ -0,0 +1,32 @@ +From aca562064a8d9f5927aa39bc108eac3bf4d0a56b Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Fri, 14 Jan 2022 14:00:54 -0500 +Subject: [PATCH] rteval: Fix test misses threshold assignment + +Fix case where self.__cfg.threshold has a value but +instead of 'threshold' in self.__cfg, +'breaktrace' in self.__cfg. +by just checking whether self.__cfg.threshold has a value +if self._cfg.breaktrace does not have a value + +Signed-off-by: John Kacur +--- + rteval/modules/measurement/cyclictest.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py +index cc74b467913d..af8adeeeb402 100644 +--- a/rteval/modules/measurement/cyclictest.py ++++ b/rteval/modules/measurement/cyclictest.py +@@ -299,7 +299,7 @@ class Cyclictest(rtevalModulePrototype): + if 'breaktrace' in self.__cfg and self.__cfg.breaktrace: + self.__cmd.append("-b%d" % int(self.__cfg.breaktrace)) + self.__cmd.append("--tracemark") +- elif 'threshold' in self.__cfg and self.__cfg.threshold: ++ elif self.__cfg.threshold: + self.__cmd.append("-b%d" % int(self.__cfg.threshold)) + + # Buffer for cyclictest data written to stdout +-- +2.31.1 + diff --git a/SOURCES/rteval-If-the-user-doesn-t-specify-a-cpumask-use-the.patch b/SOURCES/rteval-If-the-user-doesn-t-specify-a-cpumask-use-the.patch new file mode 100644 index 0000000..3745bb1 --- /dev/null +++ b/SOURCES/rteval-If-the-user-doesn-t-specify-a-cpumask-use-the.patch @@ -0,0 +1,34 @@ +From 14b0cff41f13602579fd708748eb8a2ad93db85b Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Mon, 14 Feb 2022 22:09:21 -0500 +Subject: [PATCH] rteval: If the user doesn't specify a cpumask, use the + inherited one + +If the user doesn't specify a cpumask, then we need to use the inherited +one to match what cyclictest currently does + +Signed-off-by: John Kacur +--- + rteval/modules/measurement/cyclictest.py | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py +index 4ca310bf7490..8fdd5341794a 100644 +--- a/rteval/modules/measurement/cyclictest.py ++++ b/rteval/modules/measurement/cyclictest.py +@@ -216,6 +216,12 @@ class Cyclictest(rtevalModulePrototype): + self.__sparse = True + else: + self.__cpus = online_cpus() ++ # Get the cpuset from the environment ++ cpuset = os.sched_getaffinity(0) ++ # Convert the elements to strings ++ cpuset = [str(c) for c in cpuset] ++ # Only include cpus that are in the cpuset ++ self.__cpus = [c for c in self.__cpus if c in cpuset] + + # Sort the list of cpus to align with the order reported by cyclictest + self.__cpus.sort(key=int) +-- +2.34.1 + diff --git a/SOURCES/rteval-Increase-default-buckets-from-2000-to-3500.patch b/SOURCES/rteval-Increase-default-buckets-from-2000-to-3500.patch new file mode 100644 index 0000000..e000f59 --- /dev/null +++ b/SOURCES/rteval-Increase-default-buckets-from-2000-to-3500.patch @@ -0,0 +1,60 @@ +From 9dff629f186313beebb96594d236dd9268bef1b1 Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Wed, 26 Jan 2022 10:06:33 -0500 +Subject: [PATCH] rteval: Increase default buckets from 2000 to 3500 + +Increase the default buckets from 2000 to 3500 + +With commit 0292c8963611 we skip statistics reporting if we run out of +buckets. Increase the default number of buckets to make this less likely +to occur. + +Signed-off-by: John Kacur +--- + doc/rteval.8 | 2 +- + rteval/modules/measurement/cyclictest.py | 2 +- + rteval/rteval.conf | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/doc/rteval.8 b/doc/rteval.8 +index fa24509ce7e5..25dcfcc298e7 100644 +--- a/doc/rteval.8 ++++ b/doc/rteval.8 +@@ -122,7 +122,7 @@ Measurement thread interval in microseconds (default: 100) + Interval increment in microseconds (default: 0) + .TP + .B \-\-cyclictest-buckets=NBUCKETS +-Number of 1 microsecond histogram buckets (default: 2000) ++Number of 1 microsecond histogram buckets (default: 3500) + .TP + .B \-\-hackbench-jobspercore=N + Number of jobs per online-core for hackbench load +diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py +index af8adeeeb402..5330d1466302 100644 +--- a/rteval/modules/measurement/cyclictest.py ++++ b/rteval/modules/measurement/cyclictest.py +@@ -450,7 +450,7 @@ def ModuleParameters(): + "default": 100, + "metavar": "INTV_US"}, + "buckets": {"descr": "Histogram width", +- "default": 2000, ++ "default": 3500, + "metavar": "NUM"}, + "priority": {"descr": "Run cyclictest with the given priority", + "default": 95, +diff --git a/rteval/rteval.conf b/rteval/rteval.conf +index 7ce6ef0b5acc..aa0a53bcfc63 100644 +--- a/rteval/rteval.conf ++++ b/rteval/rteval.conf +@@ -6,7 +6,7 @@ duration: 60.0 + report_interval: 600 + + [cyclictest] +-buckets: 2000 ++buckets: 3500 + interval: 100 + distance: 0 + priority: 95 +-- +2.34.1 + diff --git a/SPECS/rteval.spec b/SPECS/rteval.spec new file mode 100644 index 0000000..6da0b2d --- /dev/null +++ b/SPECS/rteval.spec @@ -0,0 +1,720 @@ +Name: rteval +Version: 3.3 +Release: 4%{?dist} +Summary: Utility to evaluate system suitability for RT Linux + +Group: Development/Tools +License: GPLv2 +URL: https://git.kernel.org/pub/scm/utils/rteval/rteval.git +Source0: https://www.kernel.org/pub/linux/utils/%{name}/%{name}-%{version}.tar.xz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: python3-devel +Requires: python3-ethtool +Requires: python3-lxml +Requires: python3-dmidecode >= 3.10 +Requires: realtime-tests >= 2.1-1 +Requires: rteval-loads >= 1.4-14 +Requires: sysstat +Requires: xz bzip2 tar gzip m4 make gawk +Requires: kernel-headers +Requires: sos +Requires: numactl +Requires: gcc binutils gcc-c++ flex bison bc make +Requires: elfutils elfutils-libelf-devel +Requires: openssl openssl-devel +Requires: stress-ng +Requires: perl-interpreter, perl-devel, perl-generators +Requires: libmpc, libmpc-devel +BuildArch: noarch + +#Patches +Patch1: rteval-Fix-test-misses-threshold-assignment.patch +Patch2: rteval-Increase-default-buckets-from-2000-to-3500.patch +Patch3: rteval-Don-t-restrict-measurement-threads-to-inherit.patch +Patch4: rteval-If-the-user-doesn-t-specify-a-cpumask-use-the.patch +Patch5: rteval-Fix-Popen-for-python3.6-where-text-True-is-no.patch +Patch6: rteval-Fix-allmodconfig-build-on-machines-that-don-t.patch + +%description +The rteval script is a utility for measuring various aspects of +realtime behavior on a system under load. The script unpacks the +kernel source, and then goes into a loop, running hackbench and +compiling a kernel tree. During that loop the cyclictest program +is run to measure event response time. After the run time completes, +a statistical analysis of the event response times is done and printed +to the screen. + +%prep +%setup -q +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 + +%build +%{__python3} setup.py build + +%install +%{__python3} setup.py install --root=$RPM_BUILD_ROOT + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%{python3_sitelib}/*.egg-info + +%doc README doc/rteval.txt +%license COPYING +%dir %{_datadir}/%{name} +%{python3_sitelib}/rteval +%{_mandir}/man8/rteval.8.gz +%config(noreplace) %{_sysconfdir}/rteval.conf +%{_datadir}/%{name}/rteval_*.xsl +%{_bindir}/rteval + +%{python3_sitelib}/rteval/__pycache__/* + +%changelog +* Thu Mar 10 2022 John Kacur - 3.3-4 +- Fix Popen for python3.6 +- Fix allmodconfig when SHA1 signing of modules is not available +Resolves: rhbz#2062457 + +* Tue Feb 15 2022 John Kacur - 3.3-3 +- Use inherited cpumask if user doesn't specify a cpumask +Resolves: rhbz#1983783 + +* Mon Feb 07 2022 John Kacur - 3.3-2 +- Don't restrict threads to cpumask in environment if user specifies cpumask +Resolves: rhbz#1983783 + +* Wed Jan 26 2022 John Kacur - 3.3-1 +- Rebase to upstream rteval-3.3 +- Fix case where the threshold assignment is not properly parsed +- Increase the default number of buckets from 2000 to 3500 +Resolves: rhbz#2012294 + +* Fri Jan 14 2022 John Kacur - 3.2-10 +- Fix test missing threshold assignment +Resolves: rhbz#1995195 + +* Wed Jan 12 2022 John Kacur - 3.2-9 +- Do not pass obsolete notrace option to cyclictest +- Parse maximum latency even if outside configured buckets +- Sort the list of cpus +- Skip statistics generation if max latency outside of configured buckets +- Add --cyclictest-threshold=USEC feature +- Add libmpc and libmpc-devel to the Requires +Resolves: rhbz#1995195 + +* Thu Nov 04 2021 John Kacur - 3.2-8 +- allow hackbench to run with warning on low mem +- clean-ups to hackbench.py +- make donotrun work correctly in load modules +- Add the idea of an exclusive load module and make stress-ng one +Resolves: rhbz#2007022 + +* Tue Aug 10 2021 John Kacur - 3.2-7 +- Add perl, gcc-c++ and a few other utilities for kernel compilation +- Reorganize the Requires a little for clarity +Resolves: rhbz#1987037 + +* Tue Aug 10 2021 Mohan Boddu - 3.2-6 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Jul 16 2021 John Kacur - 3.2-5 +- Make changes to use linux-5.13.2 kernel +- specfile changes to undo some inadvertent changes from e083e0224c00d984e9e9e7 +Resolves: rhbz#1982810 + +* Thu Jul 15 2021 John Kacur - 3.2-4 +- Fix Requires to require realtime-tests not rt-tests +Resolves: rhbz#1981875 + +* Thu Jul 15 2021 John Kacur - 3.2-3 +- Add stress-ng as a Requires in the specfile +Resolves: rhbz#1981875 + +* Thu Jul 15 2021 John Kacur - 3.2-2 +- Restrict measurement threads to cpus in the cpumask +Resolves: rhbz#1982707 + +* Fri Jul 09 2021 John Kacur - 3.2-1 +- Rebase to latest upstream rteval-3.2 +- Remove patches that are included in the rebase +Resolves: rhbz#1890561 + +* Wed Jan 13 2021 John Kacur - 3.1-4 +- Remove python-schedutils requirement +- Fix spec file to make Obsoletes rteval-common cover all necessary releases +Resolves: rhbz#1869340 + +* Wed Jan 13 2021 John Kacur - 3.1-3 +- Remove a stray line in the changelog +Resolves: rhbz#1890555 + +* Wed Jan 13 2021 John Kacur - 3.1-2 +- Fix incorrect import in rteval/sysinfo/__init__.py +Resolves: rhbz#1890555 + +* Mon Jan 11 2021 John Kacur - 3.1-1 +- Upgrade to rteval-3.1 +- Don't create a separate rteval-common package anymore +Resolves: rhbz#1890555 + +* Thu Aug 27 2020 John Kacur - 3.0-13 +- Parse cpuinfo correctly when the model name has a colon in it. +Resolves: rhbz#1873120 + +* Thu Jul 23 2020 John Kacur - 3.0-12 +- Use linux-5.7 in kcompile +Resolves: rhbz#1859762 + +* Thu Jun 25 2020 John Kacur - 3.0-11 +- Make sure "make" is available for the kcompile module +Resolves: rhbz#1850924 + +* Wed Jun 24 2020 John Kacur - 3.0-10 +- Ensure that a recent rteval-loads with stress-ng is required +Resolves: rhbz#1847233 + +* Wed Jun 24 2020 John Kacur - 3.0-9 +- Ensure the stressng command line is displayed in the final report +Resolves: rhbz#1850151 + +* Mon Jun 15 2020 John Kacur - 3.0-8 +- Add the stress-ng load module +Resolves: rhbz#1816360 + +* Mon May 04 2020 John Kacur - 3.0-7 +- Make sure openssl is available so that rteval can compile the kernel +Resolves: rhbz#1831272 + +* Tue Dec 10 2019 John Kacur - 3.0-6 +- Iterate over nodes and not sysTop +- Explictly add a few more software requires for compiling the kernel +Resolves: rhbz#1755603 + +* Tue Dec 03 2019 John Kacur - 3.0-5 +- Explicitly add some software requires for compiling the kernel +Resolves: rhbz#1766879 + +* Mon Dec 02 2019 John Kacur - 3.0-4 +- In hackbench.py node in args to Popen must be a string +Resolves: rhbz#1777048 + +* Tue Nov 19 2019 John Kacur - 3.0-3 +- Don't assume cpu0 cannot be offlined, test for it +- Drop patches that are no longer in the spec file +Resolves: rhbz#1773792 + +* Mon Nov 18 2019 John Kacur - 3.0-2 +- Check whether a cpu is online before adding to a list +- Change hackbench to use the systopology interface for online cpus +Resolves: rhbz#1715081 + +* Fri Nov 15 2019 John Kacur - 3.0-1 +- Sync rt-tests and rteval-loads versions in the specfile +- Upgrade to upstream rteval-3.0 +Resolves: rhbz#1748955 + +* Fri Nov 08 2019 John Kacur - 2.14-27 +- Update kcompile sources to linux-5.1 +Resolves: rhbz#1770215 + +* Fri Nov 08 2019 John Kacur - 2.14-26 +- Fix number of hackbench jobs wrt number of CPUs +- Don't run on nodes with no CPUs available +Resolves: rhbz#1770211 + +* Tue Apr 02 2019 Clark Williams - 2.14.25 +- fix incorrect test logic in gating tests +Resolves: rhbz#1682426 + +* Tue Apr 02 2019 Clark Williams - 2.14.24 +- add rteval-loads dependency to gating +- added second test (short_run) to gating +Resolves: rhbz#1682426 + +* Mon Apr 01 2019 Clark Williams - 2.14.23 +- add missing gating.yaml +Resolves: rhbz#1682426 + +* Mon Apr 01 2019 Clark Williams - 2.14.22 +- checkin OSCI gating framework +Resolves: rhbz#1682426 + +* Mon Dec 17 2018 John Kacur - 2.14-21 +- Fix typo in debug output +Resolves: rhbz#1659974 + +* Tue Oct 16 2018 John Kacur - 2.14-20 +- Disable options for the remote xmlrpc server, not currently supported +Resolves: rhbz#1628322 + +* Sat Oct 13 2018 John Kacur - 2.14-19 +- Fix Requires for python3 +Resolves: rhbz#1638135 + +* Fri Oct 12 2018 John Kacur - 2.14-18 +- Fix time format in report +Resolves: rhbz#1630733 + +* Fri Sep 28 2018 John Kacur - 2.14-17 +- Change python3 to platform-python +Resolves: rhbz#1633619 + +* Fri Aug 10 2018 John Kacur - 2.14-16 +- remove unnecssary encode that is causing problems +Resolves: rhbz#1614384 + +* Tue Aug 07 2018 John Kacur - 2.14-15 +- tar is required in kcompile.py. Make it a Require in the specfile +Resolves: rhbz#1612992 + +* Fri Aug 03 2018 John Kacur - 2.14-14 +- fix python3 division of integers +Resolves: rhbz#1611813 + +* Fri Aug 03 2018 John Kacur - 2.14-13 +-fix rtevalclient import +Resolves: rhbz#1608464 + +* Sat Jun 23 2018 John Kacur - 2.14-12 +- More python3 changes +- Changes for the new version of rt-tests that automates --numa +Resolves: rhbz#1594287 + +* Tue Jun 12 2018 John Kacur jkacur@redhat.com> - 2.14-11 +- More specfile changes for python3 build +Resolves: rhbz#1518699 + +* Wed May 30 2018 John Kacur - 2.14-10 +- Chnages for a python3 build +Resolves: rhbz#1518699 + +* Fri Oct 27 2017 John Kacur - 2.14-9 +- Remove redundant files for clarity. +Resolves: rhbz1504162 + +* Fri Oct 27 2017 John Kacur - 2.14-8 +- Don't fail if we don't know the init system +Resolves: rhbz1504168 + +* Fri Oct 20 2017 John Kacur - 2.14-7 +- Remove underscore from sysread function in systopology.py +Resolves: rhbz1504164 + +* Fri Oct 20 2017 John Kacur - 2.14-6 +- Improve error handling if cyclictest fails to run +Resolves: rhbz1504159 + +* Fri Oct 20 2017 John Kacur - 2.14-5 +- Remove trace-cmd from Requires, since it is not needed to run rteval +Resolves: rhbz1504173 + +* Mon Oct 16 2017 John Kacur - 2.14-4 +- Don't sleep if hackbench fails to launch due to out-of-memory +- Instead, exit gracefully +Resolves: rhbz1380144 + +* Wed Oct 11 2017 John Kacur - 2.14-3 +- Add sos as a requires since this package is needed to run sosreport +Resolves: rhbz1500722 + +* Wed Oct 11 2017 John Kacur - 2.14-2 +- Add the contents of the kernel boot command line to the summary report +Resolves: rhbz1452788 + +* Thu Mar 16 2017 Clark Williams - 2.14-1 +- removed leftover import of systopology from sysinfo + +* Wed Mar 15 2017 Clark Williams - 2.13-2 +- Updated specfile to correct version and bz [1382155] + +* Tue Sep 20 2016 Clark Williams - 2.12-1 +- handle empty environment variables SUDO_USER and USER [1312057] + +* Tue Aug 30 2016 Clark Williams - 2.11-1 +- make sure we return non-zero for early exit from tests + +* Wed Aug 3 2016 Clark Williams - 2.10-1 +- bumped version for RHEL 7.3 release + +* Mon May 9 2016 Clark Williams - 2.9.1 +- default cpulist for modules if only one specified [1333831] + +* Tue Apr 26 2016 Clark Williams - 2.8.1 +- add the --version option to print the rteval version +- made the --cyclictest-breaktrace option work properly [1209986] + +* Fri Apr 1 2016 Clark Williams - 2.7.1 +- treat SIGINT and SIGTERM as valid end-of-run events [1278757] +- added cpulist options to man page + +* Thu Feb 11 2016 Clark Williams - 2.6.1 +- update to make --loads-cpulist and --measurement-cpulist work [1306437] + +* Thu Dec 10 2015 Clark Williams - 2.5-1 +- stop using old numactl --cpubind argument + +* Wed Dec 9 2015 Clark Williams - 2.4.2 +- added Require of package numactl + +* Tue Nov 17 2015 Clark Williams - 2.4.1 +- rework hackbench load to not generate cross-node traffic [1282826] + +* Wed Aug 12 2015 Clark Williams - 2.3-1 +- comment out HWLatDetect module from default config [1245699] + +* Wed Jun 10 2015 Clark Williams - 2.2-1 +- add --loads-cpulist and --measurement-cpulist to allow cpu placement [1230401] + +* Thu Apr 23 2015 Luis Claudio R. Goncalves - 2.1-8 +- load default configs when no config file is specified (Jiri kastner) [1212452] + +* Wed Jan 14 2015 Clark Williams - 2.1-7 +- added requires of bzip2 to specfile [1151567] + +* Thu Jan 8 2015 Clark Williams - 2.1-6 +- cleaned up product documentation [1173315] + +* Mon Nov 10 2014 Luis Claudio R. Goncalves - 2.1-5 +- rebuild for RHEL-7.1 (1151567) + +* Thu Mar 27 2014 Clark Williams - 2.1-4 +- cherry-picked old commit to deal with installdir problem + +* Wed Mar 26 2014 Clark Williams - 2.1-3 +- added sysstat requires to specfile + +* Tue Mar 12 2013 David Sommerseth - 2.1-2 +- Migrated from libxslt-python to python-lxml + +* Fri Jan 18 2013 David Sommerseth - 2.1-1 +- Made some log lines clearer +- cyclictest: Added --cyclictest-breaktrace feature +- cyclictest: Removed --cyclictest-distance option +- cyclictest: Use a tempfile buffer for cyclictest's stdout data +- cyclictest: Report if breaktrace was triggered +- cyclictest: Make the unit test work again +- cyclictest: Only log and show statistic data when samples are collected +- Copyright updates + +* Thu Jan 17 2013 David Sommerseth - 2.0.1-1 +- Fix up type casting in the core module code +- hwlatdetect: Add some more useful debug info +- Reworked the run logic for modules - allow them to flag they won't run +- Fixed a few log messages in load modules +- Add a 30 seconds sleep before unleashing the measurement threads + +* Thu Jan 10 2013 David Sommerseth - 2.0-3 +- Separate out RTEVAL_VERSION into rteval.version, to avoid + massive BuildRequirements + +* Fri Dec 21 2012 David Sommerseth - 2.0-2 +- Split out common files into rteval-common + +* Fri Dec 21 2012 David Sommerseth - 2.0-1 +- Updated to rteval v2.0 and reworked spec file to use setup.py directly + +* Tue Oct 23 2012 Clark Williams - 1.36-1 +- deal with system not having dmidecode python module +- make sure to cast priority parameter to int +- from Raphaƫl Beamonte : + - Rewrite of the get_kthreads method to make it cross-distribution + - Adds getcmdpath method to use which to locate the used commands + - Rewrite of the get_services method to make it cross-distribution + +* Mon Apr 2 2012 Clark Williams - 1.35-1 +- fix thinko where SIGINT and SIGTERM handlers were commented out + +* Thu Jan 12 2012 Clark Williams - 1.34-1 +- fix missing config merge in rteval.py to pass parameters + down to cyclictest +- modify hackbench to use helper function to start process + +* Sat May 14 2011 Clark Williams - 1.33-1 +- modify hackbench cutoff to be 0.75GB/core + +* Mon Aug 23 2010 Clark Williams - 1.32-1 +- update docs +- refactor some RTEval methods to utility functions +- modify hackbench.py not to run under low memory conditions +- clean up XML generation to deal with new hackbench code +- clean up XSL code to deal with new XML 'run' attribute +- from David Sommerseth : + - improve CPU socket counting logic + - delay log directory creation until actually needed +- from Gowrishankar : + - check if the core id really exists (multithreading fix) + +* Mon Jul 26 2010 Clark Williams - 1.31-1 +- from David Sommerseth : + - Updated hackbench implementation to avoid overusing resources + - Don't show NUMA node information if it's missing in the summary.xml + - Show CPU cores properly + +* Wed Jul 21 2010 Clark Williams - 1.30-1 +- added code to hackbench to try to detect and ease memory pressure + +* Fri Jul 16 2010 Clark Williams - 1.29-1 +- fixed incorrect type value in kcompile.py + +* Fri Jul 16 2010 Clark Williams - 1.28-1 +- added logic to loads to adjust number of jobs based on ratio + of memory per core + +* Wed Jul 14 2010 Clark Williams - 1.27-1 +- modified hackbench to go back to using threads rather than + processes for units of work +- added memory size, number of numa nodes and run duration to the + parameter dictionary passed to all loads and cyclictest + +* Tue Jul 13 2010 Clark Williams - 1.26-1 +- modified hackbench parameters to reduce memory consumption + +* Mon Jul 12 2010 Clark Williams - 1.25-1 +- fixed cyclictest bug that caused everything to be uniprocessor +- updated source copyrights to 2010 + +* Fri Jul 9 2010 Clark Williams - 1.24-1 +- modified hackbench arguments and added new parameters for + hackbench in rteval.conf + +* Thu Jul 8 2010 Clark Williams - 1.23-1 +- version bump to deal with out-of-sync cvs issue + +* Thu Jul 8 2010 Clark Williams - 1.22-1 +- merged David Sommerseth changes to use + hackbench from rt-tests packages rather than carry local copy +- converted all loads and cyclictest to pass __init__ parameters + in a dictionary rather than as discrete parameters +- added logging for load output + + * Tue Apr 13 2010 Clark Williams - 1.21-1 +- from Luis Claudio Goncalves : + - remove unecessary wait() call in cyclictest.py + - close /dev/null after using it + - call subprocess.wait() when needed + - remove delayloop code in hackbench.py +- from David Sommerseth : + - add SIGINT handler + - handle non-root user case + - process DMI warnings before command line arguments + - added --annotate feature to rteval + - updates to xmlrpc code + + * Tue Apr 6 2010 Clark Williams - 1.20-1 +- code fixes from Luis Claudio Goncalves +- from David Sommerseth : + - xmlrpc server updates + - cputopology.py for recording topology in xml + - added NUMA node recording for run data + - rpmlint fixes +- added start of rteval whitepaper in docs dir + +* Tue Mar 16 2010 Clark Williams - 1.19-1 +- add ability for --summarize to read tarfiles +- from David Sommerseth + - gather info about loaded kernel modules for XML file + - added child tracking to hackbench to prevent zombies + +* Tue Feb 16 2010 Clark Williams - 1.18-1 +- fix usage of python 2.6 features on RHEL5 (python 2.4) + +* Tue Feb 16 2010 Clark Williams - 1.17-1 +- added logic to filter non-printables from service status output + so that we have legal XML output +- added logic to hackbench.py to cleanup properly at the end + of the test + +* Thu Feb 11 2010 Clark Williams - 1.16-1 +- fix errors in show_remaining_time() introduced because + time values are floats rather than ints + +* Thu Feb 11 2010 Clark Williams - 1.15-1 +- added logic to use --numa and --smp options of new cyclictest +- added countdown report for time remaining in a run + +* Tue Feb 9 2010 Clark Williams - 1.14-1 +- David Sommerseth : + merged XMLReport() changes for hwcert suite + +* Tue Dec 22 2009 Clark Williams - 1.13-1 +- added cyclictest default initializers +- added sanity checks to statistics reduction code +- updated release checklist to include origin push +- updated Makefile clean and help targets +- davids updates (mainly for v7 integration): + - Add explicit sys.path directory to the python sitelib+ + '/rteval' + - Send program arguments via RtEval() constructor + - Added more DMI data into the summary.xml report + - Fixed issue with not including all devices in the + OnBoardDeviceInfo tag + +* Thu Dec 3 2009 David Sommerseth - 1.12-2 +- fixed Makefile and specfile to include and install the + rteval/rteval_histogram_raw.py source file for gaining + raw access to histogram data +- Removed xmlrpc package during merge against master_ipv4 branch + +* Wed Nov 25 2009 Clark Williams - 1.12-1 +- fix incorrect reporting of measurement thread priorities + +* Mon Nov 16 2009 Clark Williams - 1.11-5 +- ensure that no double-slashes ("//") appear in the symlink + path for /usr/bin/rteval (problem with rpmdiff) + +* Tue Nov 10 2009 Clark Williams - 1.11-4 +- changed symlink back to install and tracked by %%files + +* Mon Nov 9 2009 Clark Williams - 1.11-3 +- changed symlink generation from %%post to %%posttrans + +* Mon Nov 9 2009 Clark Williams - 1.11-2 +- fixed incorrect dependency for libxslt + +* Fri Nov 6 2009 Clark Williams - 1.11-1 +- added base OS info to XML file and XSL report +- created new package rteval-loads for the load source code + +* Wed Nov 4 2009 Clark Williams - 1.10-1 +- added config file section for cyclictest and two settable + parameters, buckets and interval + +* Thu Oct 29 2009 Clark Williams - 1.9-1 +- merged davids updates: + -H option (raw histogram data) + cleaned up xsl files + fixed cpu sorting + +* Mon Oct 26 2009 David Sommerseth - 1.8-3 +- Fixed rpmlint complaints + +* Mon Oct 26 2009 David Sommerseth - 1.8-2 +- Added xmlrpc package, containing the XML-RPC mod_python modules + +* Tue Oct 20 2009 Clark Williams - 1.8-1 +- split kcompile and hackbench into sub-packages +- reworked Makefile (and specfile) install/uninstall logic +- fixed sysreport incorrect plugin option +- catch failure when running on root-squashed NFS + +* Tue Oct 13 2009 Clark Williams - 1.7-1 +- added kthread status to xml file +- merged davids changes for option processing and additions + to xml summary + +* Tue Oct 13 2009 Clark Williams - 1.6-1 +- changed stat calculation to loop less +- added methods to grab service and kthread status + +* Mon Oct 12 2009 Clark Williams - 1.5-1 +- changed cyclictest to use less memory when doing statisics + calculations +- updated debug output to use module name prefixes +- changed option processing to only process config file once + +* Fri Oct 9 2009 Clark Williams - 1.4-1 +- changed cyclictest to use histogram rather than sample array +- calcuated statistics directly from histogram +- changed sample interval to 100us +- added -a (affinity) argument to force cpu affinity for + measurement threads + +* Thu Sep 24 2009 David Sommerseth - 1.3-3 +- Cleaned up the spec file and made rpmlint happy + +* Wed Sep 23 2009 David Sommerseth - 1.3-2 +- Removed version number from /usr/share/rteval path + +* Tue Sep 22 2009 Clark Williams - 1.3-1 +- changes from davids: + * changed report code to sort by processor id + * added report submission retry logic + * added emailer class + +* Fri Sep 18 2009 Clark Williams - 1.2-1 +- added config file handling for modifying load behavior and + setting defaults +- added units in report per IBM request + +* Wed Aug 26 2009 Clark Williams - 1.1-2 +- missed a version change in rteval/rteval.py + +* Wed Aug 26 2009 Clark Williams - 1.1-1 +- modified cyclictest.py to start cyclictest threads with a + 'distance' of zero, meaning they all have the same measurement + interval + +* Tue Aug 25 2009 Clark Williams - 1.0-1 +- merged davids XMLRPC fixes +- fixed --workdir option +- verion bump to 1.0 + +* Thu Aug 13 2009 Clark Williams - 0.9-2 +- fixed problem with incorrect version in rteval.py + +* Tue Aug 4 2009 Clark Williams - 0.9-1 +- merged dsommers XMLRPC and database changes +- Specify minimum python-dmidecode version, which got native XML support +- Added rteval_dmi.xsl +- Fixed permission issues in /usr/share/rteval-x.xx + +* Wed Jul 22 2009 Clark Williams - 0.8-1 +- added code to capture clocksource info +- added code to copy dmesg info to report directory +- added code to display clocksource info in report +- added --summarize option to display summary of existing report +- added helpfile target to Makefile + +* Thu Mar 26 2009 Clark Williams - 0.7-1 +- added require for python-schedutils to specfile +- added default for cyclictest output file +- added help parameter to option parser data +- renamed xml output file to summary.xml +- added routine to create tarfile of result files + +* Wed Mar 18 2009 Clark Williams - 0.6-6 +- added code to handle binary data coming from DMI tables + +* Wed Mar 18 2009 Clark Williams - 0.6-5 +- fixed logic for locating XSL template (williams) +- fixed another stupid typo in specfile (williams) + +* Wed Mar 18 2009 Clark Williams - 0.6-4 +- fixed specfile to install rteval_text.xsl in /usr/share directory + +* Wed Mar 18 2009 Clark Williams - 0.6-3 +- added Requires for libxslt-python (williams) +- fixed race condition in xmlout constructor/destructor (williams) + +* Wed Mar 18 2009 Clark Williams - 0.6-2 +- added Requires for libxslt (williams) +- fixed stupid typo in rteval/rteval.py (williams) + +* Wed Mar 18 2009 Clark Williams - 0.6-1 +- added xml output logic (williams, dsommers) +- added xlst template for report generator (dsommers) +- added dmi/smbios output to report (williams) +- added __del__ method to hackbench to cleanup after run (williams) +- modified to always keep run data (williams) + +* Fri Feb 20 2009 Clark Williams - 0.5-1 +- fixed tab/space mix problem +- added report path line to report + +* Fri Feb 20 2009 Clark Williams - 0.4-1 +- reworked report output +- handle keyboard interrupt better +- removed duration mismatch between rteval and cyclictest + +* Mon Feb 2 2009 Clark Williams - 0.3-1 +- initial checkin