import rteval-2.14-25.el8

This commit is contained in:
CentOS Sources 2019-08-01 11:13:17 -04:00 committed by Stepan Oksanichenko
commit 19ab0b5210
23 changed files with 3344 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/rteval-2.14.tar.bz2

1
.rteval.metadata Normal file
View File

@ -0,0 +1 @@
d59b224576a8c1106d4cde856158814a6bfe9fb2 SOURCES/rteval-2.14.tar.bz2

View File

@ -0,0 +1,30 @@
From 7768ab5bc6b1c428de1dd1b3d9a4340bd020a2cd Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 30 May 2018 13:17:36 +0100
Subject: [PATCH] python: setup.py: Comment out os.unlink
Comment out os.unlink('dist/__init__.pyc')
as a temporary fix
Signed-off-by: John Kacur <jkacur@redhat.com>
---
setup.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 95efa905f4d1..9a76ffbf89be 100644
--- a/setup.py
+++ b/setup.py
@@ -79,7 +79,8 @@ mean, variance and standard deviation) and a report is generated.
os.unlink('dist/rteval')
os.unlink('dist/rteval.8.gz')
os.unlink('dist/__init__.py')
-os.unlink('dist/__init__.pyc')
+# TODO FIX THIS, or at least find out why it was there
+#os.unlink('dist/__init__.pyc')
if distcreated:
try:
--
2.14.3

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,156 @@
From 1897019ec6fd7bfd465dd687e58ed355e6e0bead Mon Sep 17 00:00:00 2001
From: root <root@hp-dl380g7-01.lab.bos.redhat.com>
Date: Sat, 23 Jun 2018 12:34:36 -0400
Subject: [PATCH] rteval: Changes for python3 and rt-tests with automated numa
detection
cyclictest no-longer requires --numa, but uses it automatically if detected.
rteval was changed to accomodate this.
In addtion a number of changes were made for python3 compatibility.
Mostly these ahd to do with string and bytes.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/cyclictest.py | 5 +++--
rteval/sysinfo/kernel.py | 8 +++++---
rteval/sysinfo/network.py | 2 +-
rteval/xmlout.py | 21 +++++++++------------
4 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index c992c0c..21d313c 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -228,7 +228,7 @@ class Cyclictest(rtevalModulePrototype):
def __getmode(self):
if self.__numanodes > 1:
self._log(Log.DEBUG, "running in NUMA mode (%d nodes)" % self.__numanodes)
- return '--numa'
+ return ''
self._log(Log.DEBUG, "running in SMP mode")
return '--smp'
@@ -278,7 +278,7 @@ class Cyclictest(rtevalModulePrototype):
self.__cmd.append("--notrace")
# Buffer for cyclictest data written to stdout
- self.__cyclicoutput = tempfile.SpooledTemporaryFile(mode='rw+b')
+ self.__cyclicoutput = tempfile.SpooledTemporaryFile(mode='w+b')
def _WorkloadTask(self):
@@ -327,6 +327,7 @@ class Cyclictest(rtevalModulePrototype):
# now parse the histogram output
self.__cyclicoutput.seek(0)
for line in self.__cyclicoutput:
+ line = bytes.decode(line)
if line.startswith('#'):
# Catch if cyclictest stopped due to a breaktrace
if line.startswith('# Break value: '):
diff --git a/rteval/sysinfo/kernel.py b/rteval/sysinfo/kernel.py
index fd261fe..308846b 100644
--- a/rteval/sysinfo/kernel.py
+++ b/rteval/sysinfo/kernel.py
@@ -50,9 +50,11 @@ class KernelInfo(object):
for p in c.stdout:
v = p.strip().split()
kcmd = v.pop(0)
+ kcmd = bytes.decode(kcmd)
try:
if int(v[0]) > 0 and kcmd.startswith('[') and kcmd.endswith(']'):
- ret_kthreads[v[0]] = {'policy' : policies[v[1]],
+
+ ret_kthreads[v[0]] = {'policy' : policies[bytes.decode(v[1])],
'priority' : v[2], 'name' : v[3] }
except ValueError:
pass # Ignore lines which don't have a number in the first row
@@ -137,9 +139,9 @@ class KernelInfo(object):
for pid in keys:
kthri_n = libxml2.newNode("thread")
kthreads_n.addChild(kthri_n)
- kthri_n.addContent(kthreads[pid]["name"])
+ kthri_n.addContent(bytes.decode(kthreads[pid]["name"]))
kthri_n.newProp("policy", kthreads[pid]["policy"])
- kthri_n.newProp("priority", kthreads[pid]["priority"])
+ kthri_n.newProp("priority", bytes.decode(kthreads[pid]["priority"]))
return rep_n
diff --git a/rteval/sysinfo/network.py b/rteval/sysinfo/network.py
index 9b933c1..ce9989a 100644
--- a/rteval/sysinfo/network.py
+++ b/rteval/sysinfo/network.py
@@ -53,7 +53,7 @@ class NetworkInfo(object):
if hasattr(ethtool, 'get_interfaces_info'):
# Using the newer python-ethtool API (version >= 0.4)
for dev in ethtool.get_interfaces_info(ethtool.get_devices()):
- if cmp(dev.device,'lo') == 0:
+ if dev.device == 'lo':
continue
intf_n = libxml2.newNode('interface')
diff --git a/rteval/xmlout.py b/rteval/xmlout.py
index 6464258..15391a6 100644
--- a/rteval/xmlout.py
+++ b/rteval/xmlout.py
@@ -29,7 +29,6 @@ import libxml2
import lxml.etree
import codecs
import re
-#from string import maketrans
def convert_libxml2_to_lxml_doc(inxml):
@@ -51,7 +50,7 @@ def convert_lxml_to_libxml2_nodes(inlxml):
if not isinstance(inlxml,lxml.etree._Element) and not isinstance(inlxml, lxml.etree._XSLTResultTree):
raise TypeError('Function requires an lxml.etree object as input')
- return libxml2.parseDoc(lxml.etree.tostring(inlxml)).getRootElement()
+ return libxml2.parseDoc(bytes.decode(lxml.etree.tostring(inlxml))).getRootElement()
@@ -74,13 +73,13 @@ class XMLOut(object):
self.xmldoc.freeDoc()
def __setup_tag_trans(self):
- t = maketrans('', '')
- t = t.replace(' ', '_')
- t = t.replace('\t', '_')
- t = t.replace('(', '_')
- t = t.replace(')', '_')
- t = t.replace(':', '-')
+ t = str.maketrans('', '')
return t
+# t = t.replace(' ', '_')
+# t = t.replace('\t', '_')
+# t = t.replace('(', '_')
+# t = t.replace(')', '_')
+# t = t.replace(':', '-')
def __fixtag(self, tagname):
if not isinstance(tagname, str):
@@ -99,9 +98,7 @@ class XMLOut(object):
rx = re.compile(" ")
val = rx.sub("_", val)
- # libxml2 uses UTF-8 internally and must have
- # all input as UTF-8.
- return val.encode('utf-8')
+ return val
def __add_attributes(self, node, attr):
@@ -223,7 +220,7 @@ class XMLOut(object):
resdoc = parser(xmldoc)
# Write the file with the requested output encoding
- dstfile.write(str(resdoc).encode(self.encoding))
+ dstfile.write(bytes.decode(str(resdoc).encode(self.encoding)))
if dstfile != sys.stdout:
dstfile.close()
--
2.17.0

View File

@ -0,0 +1,41 @@
From 2d547eb6a7598f608a5fce44988223186cb65760 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 16 Oct 2018 19:23:25 +0200
Subject: [PATCH] rteval: Disable options for remote xmlrpc server
Disable options for remote xmlrpc server
The simplest way to keep the code in place but disable this is to
comment out the options where the commandline is parsed.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval-cmd | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/rteval-cmd b/rteval-cmd
index 404d4ca0eb37..dff972f663cf 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -129,12 +129,12 @@ def parse_options(cfg, parser, cmdargs):
parser.add_option("-D", '--debug', dest='rteval___debugging',
action='store_true', default=rtevcfg.debugging,
help='turn on debug prints (default: %default)')
- parser.add_option("-X", '--xmlrpc-submit', dest='rteval___xmlrpc',
- action='store', default=rtevcfg.xmlrpc, metavar='HOST',
- help='Hostname to XML-RPC server to submit reports')
- parser.add_option("-P", "--xmlrpc-no-abort", dest="rteval___xmlrpc_noabort",
- action='store_true', default=False,
- help="Do not abort if XML-RPC server do not respond to ping request");
+ #parser.add_option("-X", '--xmlrpc-submit', dest='rteval___xmlrpc',
+ # action='store', default=rtevcfg.xmlrpc, metavar='HOST',
+ # help='Hostname to XML-RPC server to submit reports')
+ #parser.add_option("-P", "--xmlrpc-no-abort", dest="rteval___xmlrpc_noabort",
+ # action='store_true', default=False,
+ # help="Do not abort if XML-RPC server do not respond to ping request");
parser.add_option("-Z", '--summarize', dest='rteval___summarize',
action='store_true', default=False,
help='summarize an already existing XML report')
--
2.14.4

View File

@ -0,0 +1,47 @@
From 0c6bc0249618ba3833d062f13ff987fd29a11ab8 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 8 May 2018 19:18:54 +0100
Subject: [PATCH 17/18] rteval: Explicitly use python3
Make the use of python3 explicit
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval-cmd | 2 +-
rteval/misc.py | 2 +-
setup.py | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/rteval-cmd b/rteval-cmd
index ed61d98de1a2..3ae29dbd9fe3 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -1,4 +1,4 @@
-#!/usr/bin/python -tt
+#!/usr/bin/python3 -tt
# -*- coding: utf-8 -*-
#
# rteval - script for evaluating platform suitability for RT Linux
diff --git a/rteval/misc.py b/rteval/misc.py
index 7b55b3490e61..0cfc69dfbd62 100644
--- a/rteval/misc.py
+++ b/rteval/misc.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python -tt
+#!/usr/bin/python3 -tt
#
# Copyright (C) 2015 Clark Williams <clark.williams@gmail.com>
# Copyright (C) 2015 Red Hat, Inc.
diff --git a/setup.py b/setup.py
index f5dc14610ae4..39bc8247b704 100644
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from distutils.sysconfig import get_python_lib
from distutils.core import setup
from os.path import isfile, join
--
2.14.3

View File

@ -0,0 +1,28 @@
From 098651a756aaad2d638dec12b9f387e416339892 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 17 Dec 2018 17:40:49 +0100
Subject: [PATCH] rteval: Fix typo in debug output
Fix typo in debug output. Should say cmdline
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/sysinfo/cmdline.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rteval/sysinfo/cmdline.py b/rteval/sysinfo/cmdline.py
index 12b3a5d9b7bd..7e7566aa2d8e 100644
--- a/rteval/sysinfo/cmdline.py
+++ b/rteval/sysinfo/cmdline.py
@@ -13,7 +13,7 @@ class cmdlineInfo:
cmdlineList = []
fp = open('/proc/cmdline', 'r')
line = fp.readline()
- self.__log(Log.DEBUG, "/proc/mcdline\n")
+ self.__log(Log.DEBUG, "/proc/cmdline\n")
fp.close()
return line
--
2.19.2

View File

@ -0,0 +1,50 @@
From afbb4f884cd4221f557f8de98670c106448d2529 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 16 May 2017 20:55:36 -0400
Subject: [PATCH 04/18] rteval: Improve error handling if cyclictest fails to
run
Improve error handling if cyclictest fails to run.
An example of this could be if cyclictest is not installed, or rteval
cannot find the installation
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/cyclictest.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index c5b30557da0b..d920e4be6548 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -299,11 +299,14 @@ class Cyclictest(rtevalModulePrototype):
fp.close()
self.__cyclicoutput.seek(0)
- self.__cyclicprocess = subprocess.Popen(self.__cmd,
+ try:
+ self.__cyclicprocess = subprocess.Popen(self.__cmd,
stdout=self.__cyclicoutput,
stderr=self.__nullfp,
stdin=self.__nullfp)
- self.__started = True
+ self.__started = True
+ except OSError:
+ self.__started = False
def WorkloadAlive(self):
@@ -314,7 +317,9 @@ class Cyclictest(rtevalModulePrototype):
def _WorkloadCleanup(self):
- while self.__cyclicprocess.poll() == None:
+ if not self.__started:
+ return
+ while self.__cyclicprocess.poll() is None:
self._log(Log.DEBUG, "Sending SIGINT")
os.kill(self.__cyclicprocess.pid, signal.SIGINT)
time.sleep(2)
--
2.14.3

View File

@ -0,0 +1,262 @@
From 59d3912d71832092c4daadf31fb3184f50aaa8b0 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Thu, 18 May 2017 14:49:03 +0200
Subject: [PATCH 09/18] rteval: Remove rteval/sysinfo/systopology.py
Remove rteval/sysinfo/systopology.py as it is replaced by
rteval/systopology.py
As was intended by 6e4d54b8c6d3697efba0e3d
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/sysinfo/systopology.py | 237 ------------------------------------------
1 file changed, 237 deletions(-)
delete mode 100644 rteval/sysinfo/systopology.py
diff --git a/rteval/sysinfo/systopology.py b/rteval/sysinfo/systopology.py
deleted file mode 100644
index a6e5c1a8b409..000000000000
--- a/rteval/sysinfo/systopology.py
+++ /dev/null
@@ -1,237 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright 2016 - Clark Williams <williams@redhat.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# For the avoidance of doubt the "preferred form" of this code is one which
-# is in an open unpatent encumbered format. Where cryptographic key signing
-# forms part of the process of creating an executable the information
-# including keys needed to generate an equivalently functional executable
-# are deemed to be part of the source code.
-#
-
-import os, sys
-import os.path
-import glob
-
-def _sysread(path, obj):
- fp = open(os.path.join(path,obj), "r")
- return fp.readline().strip()
-
-#
-# class to provide access to a list of cpus
-#
-
-class CpuList(object):
- "Object that represents a group of system cpus"
-
- cpupath = '/sys/devices/system/cpu'
-
- def __init__(self, cpulist):
- if type(cpulist) is list:
- self.cpulist = cpulist
- elif type(cpulist) is str:
- self.cpulist = self.__expand_cpulist(cpulist)
- self.cpulist.sort()
-
- def __str__(self):
- return self.__collapse_cpulist(self.cpulist)
-
- def __contains__(self, cpu):
- return cpu in self.cpulist
-
- def __len__(self):
- return len(self.cpulist)
-
-
- # return the index of the last element of a sequence
- # that steps by one
- def __longest_sequence(self, cpulist):
- lim = len(cpulist)
- for idx,val in enumerate(cpulist):
- if idx+1 == lim:
- break
- if int(cpulist[idx+1]) != (int(cpulist[idx])+1):
- return idx
- return lim - 1
-
-
- #
- # collapse a list of cpu numbers into a string range
- # of cpus (e.g. 0-5, 7, 9)
- #
- def __collapse_cpulist(self, cpulist):
- if len(cpulist) == 0:
- return ""
- idx = self.__longest_sequence(cpulist)
- if idx == 0:
- seq = str(cpulist[0])
- else:
- if idx == 1:
- seq = "%d,%d" % (cpulist[0], cpulist[idx])
- else:
- seq = "%d-%d" % (cpulist[0], cpulist[idx])
-
- rest = self.__collapse_cpulist(cpulist[idx+1:])
- if rest == "":
- return seq
- return ",".join((seq, rest))
-
- # expand a string range into a list
- # don't error check against online cpus
- def __expand_cpulist(self, cpulist):
- '''expand a range string into an array of cpu numbers'''
- result = []
- for part in cpulist.split(','):
- if '-' in part:
- a, b = part.split('-')
- a, b = int(a), int(b)
- result.extend(range(a, b + 1))
- else:
- a = int(part)
- result.append(a)
- return [ int(i) for i in list(set(result)) ]
-
- # returns the list of cpus tracked
- def getcpulist(self):
- return self.cpulist
-
- # check whether cpu n is online
- def isonline(self, n):
- if n not in self.cpulist:
- raise RuntimeError, "invalid cpu number %d" % n
- if n == 0:
- return True
- path = os.path.join(CpuList.cpupath,'cpu%d' % n)
- if os.path.exists(path):
- return _sysread(path, "online") == 1
- return False
-
-#
-# class to abstract access to NUMA nodes in /sys filesystem
-#
-
-class NumaNode(object):
- "class representing a system NUMA node"
-
- # constructor argument is the full path to the /sys node file
- # e.g. /sys/devices/system/node/node0
- def __init__(self, path):
- self.path = path
- self.nodeid = int(os.path.basename(path)[4:].strip())
- self.cpus = CpuList(_sysread(self.path, "cpulist"))
- self.getmeminfo()
-
- # function for the 'in' operator
- def __contains__(self, cpu):
- return cpu in self.cpus
-
- # allow the 'len' builtin
- def __len__(self):
- return len(self.cpus)
-
- # string representation of the cpus for this node
- def __str__(self):
- return self.getcpustr()
-
- # read info about memory attached to this node
- def getmeminfo(self):
- self.meminfo = {}
- for l in open(os.path.join(self.path, "meminfo"), "r"):
- elements = l.split()
- key=elements[2][0:-1]
- val=int(elements[3])
- if len(elements) == 5 and elements[4] == "kB":
- val *= 1024
- self.meminfo[key] = val
-
- # return list of cpus for this node as a string
- def getcpustr(self):
- return str(self.cpus)
-
- # return list of cpus for this node
- def getcpulist(self):
- return self.cpus.getcpulist()
-
-#
-# Class to abstract the system topology of numa nodes and cpus
-#
-class SysTopology(object):
- "Object that represents the system's NUMA-node/cpu topology"
-
- cpupath = '/sys/devices/system/cpu'
- nodepath = '/sys/devices/system/node'
-
- def __init__(self):
- self.nodes = {}
- self.getinfo()
-
- def __len__(self):
- return len(self.nodes.keys())
-
- # inplement the 'in' function
- def __contains__(self, node):
- for n in self.nodes:
- if self.nodes[n].nodeid == node:
- return True
- return False
-
- # allow indexing for the nodes
- def __getitem__(self, key):
- return self.nodes[key]
-
- # allow iteration over the cpus for the node
- def __iter__(self):
- self.current = 0
- return self
-
- # iterator function
- def next(self):
- if self.current >= len(self.nodes):
- raise StopIteration
- n = self.nodes[self.current]
- self.current += 1
- return n
-
- def getinfo(self):
- nodes = glob.glob(os.path.join(SysTopology.nodepath, 'node[0-9]*'))
- if not nodes:
- raise RuntimeError, "No valid nodes found in %s!" % SysTopology.nodepath
- nodes.sort()
- for n in nodes:
- node = int(os.path.basename(n)[4:])
- self.nodes[node] = NumaNode(n)
-
- def getnodes(self):
- return self.nodes.keys()
-
- def getcpus(self, node):
- return self.nodes[node]
-
-
-
-if __name__ == "__main__":
-
- def unit_test():
- s = SysTopology()
- print "number of nodes: %d" % len(s)
- for n in s:
- print "node[%d]: %s" % (n.nodeid, n)
- print "system has numa node 0: %s" % (0 in s)
- print "system has numa node 2: %s" % (2 in s)
- print "system has numa node 24: %s" % (24 in s)
-
- unit_test()
--
2.14.3

View File

@ -0,0 +1,115 @@
From 5a54d982b05caa48a51fb7db1c5c1d10a76dcc68 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 20 Oct 2017 12:17:47 +0100
Subject: [PATCH 12/18] rteval: add the /proc/cmdline to rteval report
Bugzilla: bz1452788
Creates a new class cmdlineInfo which is added to the report
example of the output:
Cmdline: BOOT_IMAGE=/vmlinuz-3.10.0-663.el7.x86_64
root=/dev/mapper/rhel_dell--pem710--02-root ro crashkernel=auto
rd.lvm.lv=rhel_dell-pem710-02/root rd.lvm.lv=rhel_dell-pem710-02/swap
console=ttyS0,115200n81 isolcpus=3
Signed-off-by: John Kacur <jkacur@redhat.com>
cmdline
Signed-off-by: John Kacur <jkacur@redhat.com>
(cherry picked from commit 3e883c598c5588ebec3e9a6e1f8bd396e5d3ab94)
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/rteval_text.xsl | 5 +++++
rteval/sysinfo/__init__.py | 5 ++++-
rteval/sysinfo/cmdline.py | 28 ++++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 1 deletion(-)
create mode 100644 rteval/sysinfo/cmdline.py
diff --git a/rteval/rteval_text.xsl b/rteval/rteval_text.xsl
index e99c0162c75a..c40063e3dd19 100644
--- a/rteval/rteval_text.xsl
+++ b/rteval/rteval_text.xsl
@@ -136,6 +136,11 @@
<xsl:apply-templates select="loads/command_line"/>
</xsl:if>
<xsl:text>&#10;</xsl:text>
+
+ <xsl:text> Cmdline: </xsl:text>
+ <xsl:value-of select="SystemInfo/cmdlineInfo/cmdline"/>
+ <xsl:text>&#10;</xsl:text>
+
<!-- Generate a summary report for all measurement profiles -->
<xsl:apply-templates select="Measurements/Profile"/>
<xsl:text> ===================================================================&#10;</xsl:text>
diff --git a/rteval/sysinfo/__init__.py b/rteval/sysinfo/__init__.py
index 0de985bf86f1..f7bf823aa36d 100644
--- a/rteval/sysinfo/__init__.py
+++ b/rteval/sysinfo/__init__.py
@@ -32,9 +32,10 @@ from cputopology import CPUtopology
from memory import MemoryInfo
from osinfo import OSInfo
from network import NetworkInfo
+from cmdline import cmdlineInfo
import dmi
-class SystemInfo(KernelInfo, SystemServices, dmi.DMIinfo, CPUtopology, MemoryInfo, OSInfo, NetworkInfo):
+class SystemInfo(KernelInfo, SystemServices, dmi.DMIinfo, CPUtopology, MemoryInfo, OSInfo, NetworkInfo, cmdlineInfo):
def __init__(self, config, logger=None):
self.__logger = logger
KernelInfo.__init__(self, logger=logger)
@@ -42,6 +43,7 @@ class SystemInfo(KernelInfo, SystemServices, dmi.DMIinfo, CPUtopology, MemoryInf
dmi.DMIinfo.__init__(self, config, logger=logger)
CPUtopology.__init__(self)
OSInfo.__init__(self, logger=logger)
+ cmdlineInfo.__init__(self, logger=logger)
# Parse initial DMI decoding errors
dmi.ProcessWarnings()
@@ -62,6 +64,7 @@ class SystemInfo(KernelInfo, SystemServices, dmi.DMIinfo, CPUtopology, MemoryInf
report_n.addChild(CPUtopology.MakeReport(self))
report_n.addChild(MemoryInfo.MakeReport(self))
report_n.addChild(dmi.DMIinfo.MakeReport(self))
+ report_n.addChild(cmdlineInfo.MakeReport(self))
return report_n
diff --git a/rteval/sysinfo/cmdline.py b/rteval/sysinfo/cmdline.py
new file mode 100644
index 000000000000..12b3a5d9b7bd
--- /dev/null
+++ b/rteval/sysinfo/cmdline.py
@@ -0,0 +1,28 @@
+import sys, os, readline, libxml2
+from rteval.Log import Log
+
+class cmdlineInfo:
+ def __init__(self, logger = None):
+ self.__logger = logger
+
+ def __log(self, logtype, msg):
+ if self.__logger:
+ self.__logger.log(logtype, msg)
+
+ def read_cmdline(self):
+ cmdlineList = []
+ fp = open('/proc/cmdline', 'r')
+ line = fp.readline()
+ self.__log(Log.DEBUG, "/proc/mcdline\n")
+ fp.close()
+ return line
+
+ def MakeReport(self):
+ rep_n = libxml2.newNode("cmdlineInfo")
+ cmdline_n = libxml2.newNode("cmdline")
+ cmdlineStr = self.read_cmdline()
+ cmdline_n.addContent(cmdlineStr)
+ self.__log(Log.DEBUG, cmdlineStr)
+ rep_n.addChild(cmdline_n)
+
+ return rep_n
--
2.14.3

View File

@ -0,0 +1,38 @@
From 3ec25aea4b437db0d0910b4cb7110c8850d3b64b Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 8 May 2018 15:44:50 +0100
Subject: [PATCH 15/18] rteval: cyclictest.py: Fix spacing problems
Some spacing problems got introduced with the last fix, possibly
as a result of examining them with certain text editors
Fix these
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/cyclictest.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index d920e4be6548..f6c6d1353fac 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -299,13 +299,13 @@ class Cyclictest(rtevalModulePrototype):
fp.close()
self.__cyclicoutput.seek(0)
- try:
+ try:
self.__cyclicprocess = subprocess.Popen(self.__cmd,
stdout=self.__cyclicoutput,
stderr=self.__nullfp,
stdin=self.__nullfp)
self.__started = True
- except OSError:
+ except OSError:
self.__started = False
--
2.14.3

View File

@ -0,0 +1,30 @@
From 6c89a0dcb9133792fc755d2b7370b81b5471753e Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 8 May 2018 16:35:59 +0100
Subject: [PATCH 16/18] rteval: cyclictest.py: Remove -n for cyclictest options
Upstream cyclictest made clock_nanosleep the default and removed
the -n option. Passing it as an option now creates an error, so remove
that here too.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
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 f6c6d1353fac..04f78d1c9612 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -259,7 +259,7 @@ class Cyclictest(rtevalModulePrototype):
self.__cmd = ['cyclictest',
self.__interval,
- '-qmun',
+ '-qmu',
'-h %d' % self.__buckets,
"-p%d" % int(self.__priority),
]
--
2.14.3

View File

@ -0,0 +1,29 @@
From 989eb650c0171a3d79e33986627ed4d5fb970b46 Mon Sep 17 00:00:00 2001
From: Jiri Kastner <jkastner@redhat.com>
Date: Thu, 2 Aug 2018 16:37:15 +0200
Subject: [PATCH] rteval: fix rtevalclient import
Signed-off-by: Jiri Kastner <jkastner@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/rtevalXMLRPC.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rteval/rtevalXMLRPC.py b/rteval/rtevalXMLRPC.py
index 7b2d207e0088..54bc114099d9 100644
--- a/rteval/rtevalXMLRPC.py
+++ b/rteval/rtevalXMLRPC.py
@@ -24,8 +24,8 @@
# are deemed to be part of the source code.
#
-import socket, time
-import rtevalclient, xmlrpc.client
+import socket, time, xmlrpc.client
+from .rtevalclient import rtevalclient
from .Log import Log
class rtevalXMLRPC(object):
--
2.14.4

View File

@ -0,0 +1,41 @@
From 5ed68ae77ec05786aab99fbed35d0347a5d25997 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 20 Oct 2017 12:17:49 +0100
Subject: [PATCH 14/18] rteval: hackbench.py: Do not sleep if hackbench fails
from memory errors
Do not sleep if hackbench fails to launch due to out-of-memory errors.
This can cause rteval to execute correctly without applying a full
stress load. Instead, exit gracefully
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/loads/hackbench.py | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/rteval/modules/loads/hackbench.py b/rteval/modules/loads/hackbench.py
index 8456a24f4bba..9d3f6c834356 100644
--- a/rteval/modules/loads/hackbench.py
+++ b/rteval/modules/loads/hackbench.py
@@ -150,14 +150,10 @@ class Hackbench(CommandLineLoad):
except OSError, e:
if e.errno != errno.ENOMEM:
raise e
- # Catch out-of-memory errors and wait a bit to (hopefully)
- # ease memory pressure
- self._log(Log.DEBUG, "ERROR: %s, sleeping for %f seconds" % (e.strerror, self.__err_sleep))
- time.sleep(self.__err_sleep)
- if self.__err_sleep < 60.0:
- self.__err_sleep *= 2.0
- if self.__err_sleep > 60.0:
- self.__err_sleep = 60.0
+ # Exit gracefully without a traceback for out-of-memory errors
+ self._log(Log.DEBUG, "ERROR, ENOMEM while trying to launch hackbench")
+ print("out-of-memory trying to launch hackbench, exiting")
+ sys.exit(-1)
def WorkloadAlive(self):
--
2.14.3

View File

@ -0,0 +1,36 @@
From 69a848c0030d39a9546253b27b060634852bf8e9 Mon Sep 17 00:00:00 2001
From: Jiri Kastner <jkastner@redhat.com>
Date: Fri, 3 Aug 2018 13:09:56 +0200
Subject: [PATCH] rteval: remaining time fix
in python3 division of integer/integer results in float.
casting division to int gives us needed numbers.
Signed-off-by: Jiri Kastner <jkastner@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/__init__.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/rteval/__init__.py b/rteval/__init__.py
index 176715f74ebd..88145b7eba1c 100644
--- a/rteval/__init__.py
+++ b/rteval/__init__.py
@@ -116,11 +116,11 @@ class RtEval(rtevalReport):
def __show_remaining_time(self, remaining):
r = int(remaining)
- days = r / 86400
+ days = int(r / 86400)
if days: r = r - (days * 86400)
- hours = r / 3600
+ hours = int(r / 3600)
if hours: r = r - (hours * 3600)
- minutes = r / 60
+ minutes = int(r / 60)
if minutes: r = r - (minutes * 60)
print("rteval time remaining: %d days, %d hours, %d minutes, %d seconds" % (days, hours, minutes, r))
--
2.14.4

View File

@ -0,0 +1,33 @@
From 4c64b6b5ef7eba57c0892407816223c3f226b9ae Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 10 Aug 2018 17:44:35 +0200
Subject: [PATCH] rteval: remove unnecssary encode
When running $ rteval --summarize <run-tarball>
the newlines are missing and the output comes out as one big line.
The addition of the encoding for python3 compatibility has made the
encoding here unnessary and in fact it causes problems, so remove it
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval-cmd | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rteval-cmd b/rteval-cmd
index 739a929316a3..404d4ca0eb37 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -83,7 +83,7 @@ def summarize(repfile, xslt):
# Parse and print the report through the XSLT template - preserve proper encoding
resdoc = xsltprs(xmldoc)
- print(str(resdoc).encode('UTF-8'))
+ print(str(resdoc))
# Clean up
del resdoc
--
2.14.4

View File

@ -0,0 +1,28 @@
From b64537b1530b7918618f925ea7ccc3b119a8b471 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 30 May 2018 13:12:21 +0100
Subject: [PATCH] rteval: setup.py: Open byte like object
python3 differentiates between text and binary data
Signed-off-by: John Kacur <jkacur@redhat.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index fc78a93c8793..95efa905f4d1 100644
--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,7 @@ from dist import RTEVAL_VERSION
# Compress the man page, so distutil will only care for the compressed file
mangz = gzip.GzipFile('dist/rteval.8.gz', 'w', 9)
-man = open('doc/rteval.8', 'r')
+man = open('doc/rteval.8', 'rb')
mangz.writelines(man)
man.close()
mangz.close()
--
2.14.3

View File

@ -0,0 +1,48 @@
From 42d724f1a68815ecf7b44c7a2b9001363c93f4ce Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Thu, 18 May 2017 13:32:48 +0200
Subject: [PATCH 08/18] rteval: systopology.py: Remove underscore from sysread
Remove underscore from sysread.
I'm eseentially backporting this comment from the obsolete file
rteval/sysinfo/systopology.py
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/systopology.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/rteval/systopology.py b/rteval/systopology.py
index 7c0985e9d26e..fc3876c20bc9 100644
--- a/rteval/systopology.py
+++ b/rteval/systopology.py
@@ -27,7 +27,7 @@ import os, sys
import os.path
import glob
-def _sysread(path, obj):
+def sysread(path, obj):
fp = open(os.path.join(path,obj), "r")
return fp.readline().strip()
@@ -117,7 +117,7 @@ class CpuList(object):
return True
path = os.path.join(CpuList.cpupath,'cpu%d' % n)
if os.path.exists(path):
- return _sysread(path, "online") == 1
+ return sysread(path, "online") == 1
return False
#
@@ -132,7 +132,7 @@ class NumaNode(object):
def __init__(self, path):
self.path = path
self.nodeid = int(os.path.basename(path)[4:].strip())
- self.cpus = CpuList(_sysread(self.path, "cpulist"))
+ self.cpus = CpuList(sysread(self.path, "cpulist"))
self.getmeminfo()
# function for the 'in' operator
--
2.14.3

View File

@ -0,0 +1,32 @@
From 8a704e7b12b132d4e161bcc49f009a05350b98ca Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 12 Oct 2018 00:49:33 +0200
Subject: [PATCH] rteval: rtevalReport.py: Fix time format in report
Another case where python3 division generates floats
This can be fixed by converting the result to an int
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/rtevalReport.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rteval/rtevalReport.py b/rteval/rtevalReport.py
index 55594ae8f0bc..a18dd41b36fc 100644
--- a/rteval/rtevalReport.py
+++ b/rteval/rtevalReport.py
@@ -48,9 +48,9 @@ class rtevalReport(object):
duration = datetime.now() - measure_start
seconds = duration.seconds
- hours = seconds / 3600
+ hours = int(seconds / 3600)
if hours: seconds -= (hours * 3600)
- minutes = seconds / 60
+ minutes = int(seconds / 60)
if minutes: seconds -= (minutes * 60)
# Start new XML report
--
2.14.4

View File

@ -0,0 +1,32 @@
From 74432794f6bf0bcb984cf53982e9495163b76b3a Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com>
Date: Tue, 12 Sep 2017 13:36:31 -0500
Subject: [PATCH 10/18] sysinfo: don't fail if we don't know the init system
Signed-off-by: Clark Williams <williams@redhat.com>
---
rteval/sysinfo/services.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rteval/sysinfo/services.py b/rteval/sysinfo/services.py
index e7c2fe0dc00e..6465d35e1b73 100644
--- a/rteval/sysinfo/services.py
+++ b/rteval/sysinfo/services.py
@@ -95,7 +95,8 @@ class SystemServices(object):
self.__log(Log.DEBUG, "Using sysvinit to get services status")
return self.__get_services_sysvinit()
else:
- raise RuntimeError, "Unknown init system (%s)" % self.__init
+ self.__init = 'container'
+ self.__log(Log.DEBUG, "Running inside container")
return {}
@@ -133,4 +134,3 @@ def unit_test(rootdir):
if __name__ == '__main__':
sys.exit(unit_test(None))
-
--
2.14.3

View File

@ -0,0 +1,27 @@
From ed5cb77f7bcfee9833e41d675246cec310143179 Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com>
Date: Fri, 17 Mar 2017 16:44:32 -0500
Subject: [PATCH 01/18] update rt-tests URL in docs/README
Signed-off-by: Clark Williams <williams@redhat.com>
---
README | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/README b/README
index 1fcc34749394..62b1cd25f4fd 100644
--- a/README
+++ b/README
@@ -35,8 +35,7 @@ libxml2-python
http://xmlsoft.org/
rt-tests
- git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
-
+ git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
Clark Williams <williams@redhat.com> wrote rteval
David Sommerseth <davids@redhat.com> wrote the XML-RPC and database
--
2.14.3

622
SPECS/rteval.spec Normal file
View File

@ -0,0 +1,622 @@
Name: rteval
Version: 2.14
Release: 25%{?dist}
Summary: Utility to evaluate system suitability for RT Linux
Group: Development/Tools
License: GPLv2
URL: http://git.kernel.org/?p=linux/kernel/git/clrkwllms/rteval.git
Source0: rteval-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: python3-devel
Requires: platform-python
Requires: python3-schedutils python3-ethtool python3-lxml
Requires: python3-dmidecode >= 3.10
Requires: rt-tests >= 0.97
Requires: rteval-loads >= 1.4
Requires: rteval-common => %{version}-%{release}
Requires: sysstat
Requires: bzip2
Requires: kernel-headers
Requires: sos
Requires: tar
BuildArch: noarch
Obsoletes: rteval <= 1.7
Requires: numactl
%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.
%package common
Summary: Common rteval files
BuildArch: noarch
Patch1: update-rt-tests-URL-in-docs-README.patch
Patch2: rteval-Improve-error-handling-if-cyclictest-fails-to.patch
Patch3: rteval-systopology.py-Remove-underscore-from-sysread.patch
Patch4: rteval-Remove-rteval-sysinfo-systopology.py.patch
Patch5: sysinfo-don-t-fail-if-we-don-t-know-the-init-system.patch
Patch6: rteval-add-the-proc-cmdline-to-rteval-report.patch
Patch7: rteval-hackbench.py-Do-not-sleep-if-hackbench-fails-.patch
Patch8: rteval-cyclictest.py-Fix-spacing-problems.patch
Patch9: rteval-cyclictest.py-Remove-n-for-cyclictest-options.patch
Patch10: rteval-Explicitly-use-python3.patch
Patch11: rteval-2to3-transformations.patch
Patch12: rteval-setup.py-Open-byte-like-object.patch
Patch13: python-setup.py-Comment-out-os.unlink.patch
Patch14: rteval-Changes-for-python3-and-rt-tests-with-automat.patch
Patch15: rteval-fix-rtevalclient-import.patch
Patch16: rteval-remaining-time-fix.patch
Patch17: rteval-remove-unnecssary-encode.patch
Patch18: rtevalReport.py-Fix-time-format-in-report.patch
Patch19: rteval-Disable-options-for-remote-xmlrpc-server.patch
Patch20: rteval-Fix-typo-in-debug-output.patch
%description common
Common files used by rteval, rteval-xmlrpc and rteval-parser
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
# version sanity check (make sure specfile and rteval.py match)
#cp rteval/version.py rtevalversion.py
#srcver=$(%{__python3} -c "from rtevalversion import RTEVAL_VERSION; print RTEVAL_VERSION")
#rm -rf rtevalversion.py
#if [ $srcver != %{version} ]; then
# printf "\n***\n*** rteval spec file version do not match the rteval/rteval.py version\n***\n\n"
# exit -1
#fi
%build
%{__python3} setup.py build
%install
%{__python3} setup.py install --root=$RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files common
%doc COPYING
%dir %{_datadir}/%{name}
%{python3_sitelib}/rteval/rtevalclient.py*
%{python3_sitelib}/rteval/rtevalConfig.py*
%{python3_sitelib}/rteval/rtevalXMLRPC.py*
%{python3_sitelib}/rteval/version.py*
%{python3_sitelib}/rteval/Log.py*
%{python3_sitelib}/rteval/misc.py*
%{python3_sitelib}/rteval/systopology.py*
%files
%defattr(-,root,root,-)
%{python3_sitelib}/*.egg-info
%doc COPYING README doc/rteval.txt
%{_mandir}/man8/rteval.8.gz
%config(noreplace) %{_sysconfdir}/rteval.conf
%{_datadir}/%{name}/rteval_*.xsl
%{python3_sitelib}/rteval/__init__.py*
%{python3_sitelib}/rteval/rtevalMailer.py*
%{python3_sitelib}/rteval/rtevalReport.py*
%{python3_sitelib}/rteval/xmlout.py*
%{python3_sitelib}/rteval/modules
%{python3_sitelib}/rteval/sysinfo
/usr/bin/rteval
%{python3_sitelib}/rteval/__pycache__/*
%changelog
* Mon Apr 02 2019 Clark Williams <williams@redhat.com> - 2.14.25
- fix incorrect test logic in gating tests
Resolves: rhbz#1682426
* Mon Apr 02 2019 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 2.14.23
- add missing gating.yaml
Resolves: rhbz#1682426
* Mon Apr 01 2019 Clark Williams <williams@redhat.com> - 2.14.22
- checkin OSCI gating framework
Resolves: rhbz#1682426
* Mon Dec 17 2018 John Kacur <jkacur@redhat.com> - 2.14-21
- Fix typo in debug output
Resolves: rhbz#1659974
* Tue Oct 16 2018 John Kacur <jkacur@redhat.com> - 2.14-20
- Disable options for the remote xmlrpc server, not currently supported
Resolves: rhbz#1628322
* Sat Oct 13 2018 John Kacur <jkacur@redhat.com> - 2.14-19
- Fix Requires for python3
Resolves: rhbz#1638135
* Fri Oct 12 2018 John Kacur <jkacur@redhat.com> - 2.14-18
- Fix time format in report
Resolves: rhbz#1630733
* Fri Sep 28 2018 John Kacur <jkacur@redhat.com> - 2.14-17
- Change python3 to platform-python
Resolves: rhbz#1633619
* Fri Aug 10 2018 John Kacur <jkacur@redhat.com> - 2.14-16
- remove unnecssary encode that is causing problems
Resolves: rhbz#1614384
* Tue Aug 07 2018 John Kacur <jkacur@redhat.com> - 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 <jkacur@redhat.com> - 2.14-14
- fix python3 division of integers
Resolves: rhbz#1611813
* Fri Aug 03 2018 John Kacur <jkacur@redhat.com> - 2.14-13
-fix rtevalclient import
Resolves: rhbz#1608464
* Sat Jun 23 2018 John Kacur <jkacur@redhat.com> - 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 <jkacur@redhat.com> - 2.14-10
- Chnages for a python3 build
Resolves: rhbz#1518699
* Fri Oct 27 2017 John Kacur <jkacur@redhat.com> - 2.14-9
- Remove redundant files for clarity.
Resolves: rhbz1504162
* Fri Oct 27 2017 John Kacur <jkacur@redhat.com> - 2.14-8
- Don't fail if we don't know the init system
Resolves: rhbz1504168
* Fri Oct 20 2017 John Kacur <jkacur@redhat.com> - 2.14-7
- Remove underscore from sysread function in systopology.py
Resolves: rhbz1504164
* Fri Oct 20 2017 John Kacur <jkacur@redhat.com> - 2.14-6
- Improve error handling if cyclictest fails to run
Resolves: rhbz1504159
* Fri Oct 20 2017 John Kacur <jkacur@redhat.com> - 2.14-5
- Remove trace-cmd from Requires, since it is not needed to run rteval
Resolves: rhbz1504173
* Mon Oct 16 2017 John Kacur <jkacur@redhat.com> - 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 <jkacur@redhat.com> - 2.14-3
- Add sos as a requires since this package is needed to run sosreport
Resolves: rhbz1500722
* Wed Oct 11 2017 John Kacur <jkacur@redhat.com> - 2.14-2
- Add the contents of the kernel boot command line to the summary report
Resolves: rhbz1452788
* Thu Mar 16 2017 Clark Williams <williams@redhat.com> - 2.14-1
- removed leftover import of systopology from sysinfo
* Wed Mar 15 2017 Clark Williams <williams@redhat.com> - 2.13-2
- Updated specfile to correct version and bz [1382155]
* Tue Sep 20 2016 Clark Williams <williams@rehdat.com> - 2.12-1
- handle empty environment variables SUDO_USER and USER [1312057]
* Tue Aug 30 2016 Clark Williams <williams@rehdat.com> - 2.11-1
- make sure we return non-zero for early exit from tests
* Wed Aug 3 2016 Clark Williams <williams@rehdat.com> - 2.10-1
- bumped version for RHEL 7.3 release
* Mon May 9 2016 Clark Williams <williams@redhat.com> - 2.9.1
- default cpulist for modules if only one specified [1333831]
* Tue Apr 26 2016 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 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 <williams@redhat.com> - 2.6.1
- update to make --loads-cpulist and --measurement-cpulist work [1306437]
* Thu Dec 10 2015 Clark Williams <williams@refhat.com> - 2.5-1
- stop using old numactl --cpubind argument
* Wed Dec 9 2015 Clark Williams <williams@refhat.com> - 2.4.2
- added Require of package numactl
* Tue Nov 17 2015 Clark Williams <williams@refhat.com> - 2.4.1
- rework hackbench load to not generate cross-node traffic [1282826]
* Wed Aug 12 2015 Clark Williams <williams@redhat.com> - 2.3-1
- comment out HWLatDetect module from default config [1245699]
* Wed Jun 10 2015 Clark Williams <williams@redhat.com> - 2.2-1
- add --loads-cpulist and --measurement-cpulist to allow cpu placement [1230401]
* Thu Apr 23 2015 Luis Claudio R. Goncalves <lgoncalv@redhat.com> - 2.1-8
- load default configs when no config file is specified (Jiri kastner) [1212452]
* Wed Jan 14 2015 Clark Williams <williams@redhat.com> - 2.1-7
- added requires of bzip2 to specfile [1151567]
* Thu Jan 8 2015 Clark Williams <williams@redhat.com> - 2.1-6
- cleaned up product documentation [1173315]
* Mon Nov 10 2014 Luis Claudio R. Goncalves <lgoncalv@redhat.com> - 2.1-5
- rebuild for RHEL-7.1 (1151567)
* Thu Mar 27 2014 Clark Williams <williams@redhat.com> - 2.1-4
- cherry-picked old commit to deal with installdir problem
* Wed Mar 26 2014 Clark Williams <williams@redhat.com> - 2.1-3
- added sysstat requires to specfile
* Tue Mar 12 2013 David Sommerseth <davids@redhat.com> - 2.1-2
- Migrated from libxslt-python to python-lxml
* Fri Jan 18 2013 David Sommerseth <davids@redhat.com> - 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 <davids@redhat.com> - 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 <davids@redhat.com> - 2.0-3
- Separate out RTEVAL_VERSION into rteval.version, to avoid
massive BuildRequirements
* Fri Dec 21 2012 David Sommerseth <davids@redhat.com> - 2.0-2
- Split out common files into rteval-common
* Fri Dec 21 2012 David Sommerseth <davids@redhat.com> - 2.0-1
- Updated to rteval v2.0 and reworked spec file to use setup.py directly
* Tue Oct 23 2012 Clark Williams <williams@redhat.com> - 1.36-1
- deal with system not having dmidecode python module
- make sure to cast priority parameter to int
- from Raphaël Beamonte <raphael.beamonte@gmail.com>:
- 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 <williams@redhat.com> - 1.35-1
- fix thinko where SIGINT and SIGTERM handlers were commented out
* Thu Jan 12 2012 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 1.33-1
- modify hackbench cutoff to be 0.75GB/core
* Mon Aug 23 2010 Clark Williams <williams@redhat.com> - 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 <davids@redhat.com>:
- improve CPU socket counting logic
- delay log directory creation until actually needed
- from Gowrishankar <gowrishankar.m@in.ibm.com>:
- check if the core id really exists (multithreading fix)
* Mon Jul 26 2010 Clark Williams <williams@redhat.com> - 1.31-1
- from David Sommerseth <davids@redhat.com>:
- 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 <williams@redhat.com> - 1.30-1
- added code to hackbench to try to detect and ease memory pressure
* Fri Jul 16 2010 Clark Williams <williams@redhat.com> - 1.29-1
- fixed incorrect type value in kcompile.py
* Fri Jul 16 2010 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 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 <williams@redhat.com> - 1.26-1
- modified hackbench parameters to reduce memory consumption
* Mon Jul 12 2010 Clark Williams <williams@redhat.com> - 1.25-1
- fixed cyclictest bug that caused everything to be uniprocessor
- updated source copyrights to 2010
* Fri Jul 9 2010 Clark Williams <williams@redhat.com> - 1.24-1
- modified hackbench arguments and added new parameters for
hackbench in rteval.conf
* Thu Jul 8 2010 Clark Williams <williams@redhat.com> - 1.23-1
- version bump to deal with out-of-sync cvs issue
* Thu Jul 8 2010 Clark Williams <williams@redhat.com> - 1.22-1
- merged David Sommerseth <davids@redhat.com> 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 <williams@redhat.com> - 1.21-1
- from Luis Claudio Goncalves <lgoncalv@redhat.com>:
- 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 <davids@redhat.com>:
- 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 <williams@redhat.com> - 1.20-1
- code fixes from Luis Claudio Goncalves <lgoncalv@redhat.com>
- from David Sommerseth <davids@redhat.com>:
- 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 <williams@redhat.com> - 1.19-1
- add ability for --summarize to read tarfiles
- from David Sommerseth <davids@redhat.com>
- gather info about loaded kernel modules for XML file
- added child tracking to hackbench to prevent zombies
* Tue Feb 16 2010 Clark Williams <williams@redhat.com> - 1.18-1
- fix usage of python 2.6 features on RHEL5 (python 2.4)
* Tue Feb 16 2010 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 1.16-1
- fix errors in show_remaining_time() introduced because
time values are floats rather than ints
* Thu Feb 11 2010 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 1.14-1
- David Sommerseth <davids@redhat.com>:
merged XMLReport() changes for hwcert suite
* Tue Dec 22 2009 Clark Williams <williams@redhat.com> - 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 <davids@redhat.com> - 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 <williams@redhat.com> - 1.12-1
- fix incorrect reporting of measurement thread priorities
* Mon Nov 16 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 1.11-4
- changed symlink back to install and tracked by %%files
* Mon Nov 9 2009 Clark Williams <williams@redhat.com> - 1.11-3
- changed symlink generation from %%post to %%posttrans
* Mon Nov 9 2009 Clark Williams <williams@redhat.com> - 1.11-2
- fixed incorrect dependency for libxslt
* Fri Nov 6 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 1.10-1
- added config file section for cyclictest and two settable
parameters, buckets and interval
* Thu Oct 29 2009 Clark Williams <williams@redhat.com> - 1.9-1
- merged davids updates:
-H option (raw histogram data)
cleaned up xsl files
fixed cpu sorting
* Mon Oct 26 2009 David Sommerseth <davids@redhat.com> - 1.8-3
- Fixed rpmlint complaints
* Mon Oct 26 2009 David Sommerseth <davids@redhat.com> - 1.8-2
- Added xmlrpc package, containing the XML-RPC mod_python modules
* Tue Oct 20 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 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 <williams@redhat.com> - 1.6-1
- changed stat calculation to loop less
- added methods to grab service and kthread status
* Mon Oct 12 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 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 <davids@redhat.com> - 1.3-3
- Cleaned up the spec file and made rpmlint happy
* Wed Sep 23 2009 David Sommerseth <davids@redhat.com> - 1.3-2
- Removed version number from /usr/share/rteval path
* Tue Sep 22 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 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 <williams@redhat.com> - 1.1-2
- missed a version change in rteval/rteval.py
* Wed Aug 26 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 1.0-1
- merged davids XMLRPC fixes
- fixed --workdir option
- verion bump to 1.0
* Thu Aug 13 2009 Clark Williams <williams@redhat.com> - 0.9-2
- fixed problem with incorrect version in rteval.py
* Tue Aug 4 2009 Clark Williams <williams@redhat.com> - 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 <williams@redhat.com> - 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 <williams@torg> - 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 <williams@torg> - 0.6-6
- added code to handle binary data coming from DMI tables
* Wed Mar 18 2009 Clark Williams <williams@torg> - 0.6-5
- fixed logic for locating XSL template (williams)
- fixed another stupid typo in specfile (williams)
* Wed Mar 18 2009 Clark Williams <williams@torg> - 0.6-4
- fixed specfile to install rteval_text.xsl in /usr/share directory
* Wed Mar 18 2009 Clark Williams <williams@torg> - 0.6-3
- added Requires for libxslt-python (williams)
- fixed race condition in xmlout constructor/destructor (williams)
* Wed Mar 18 2009 Clark Williams <williams@torg> - 0.6-2
- added Requires for libxslt (williams)
- fixed stupid typo in rteval/rteval.py (williams)
* Wed Mar 18 2009 Clark Williams <williams@torg> - 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 <williams@torg> - 0.5-1
- fixed tab/space mix problem
- added report path line to report
* Fri Feb 20 2009 Clark Williams <williams@torg> - 0.4-1
- reworked report output
- handle keyboard interrupt better
- removed duration mismatch between rteval and cyclictest
* Mon Feb 2 2009 Clark Williams <williams@torg> - 0.3-1
- initial checkin