Update to 2.2

This commit is contained in:
Peter Robinson 2021-10-26 15:19:02 +01:00
parent 9195b3c254
commit 95edc5dc8e
7 changed files with 10 additions and 411 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/rt-tests-1.9.tar.xz
/rt-tests-2.2.tar.xz

View File

@ -1,17 +1,12 @@
Summary: Programs that test various rt-features
Name: realtime-tests
# These will be setup by the "make rpm" logic
# Version: 1.0
# BuildRequires: numactl-devel
# Numa argument to make: NUMA=1
#
Version: 1.9
Release: 11%{?dist}
Summary: Programs that test various rt-features
Version: 2.2
Release: 1%{?dist}
License: GPLv2
URL: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
Source0: https://www.kernel.org/pub/linux/utils/rt-tests/rt-tests-%{version}.tar.xz
ExcludeArch: s390 s390x armv7hl ppc64 ppc64le aarch64
ExcludeArch: %{arm}
BuildRequires: make
BuildRequires: gcc
BuildRequires: numactl-devel
@ -19,23 +14,13 @@ BuildRequires: python3-devel
Requires: bash
Requires: bc
#Patches
Patch1: rt-tests-Don-t-compress-man-pages-by-default.patch
Patch2: rt-tests-determine_maximum_mpps.sh-Add-a-menu-to-get-user-settings.patch
Patch3: rt-tests-queuelat-Remove-get_cpuinfo_mhz.sh-and-old-Makefile.patch
Patch4: rt-tests-queuelat-Add-a-manpage-for-determine_maximum_mpps.patch
%description
realtime-tests is a set of programs that test and measure various components of
real-time kernel behavior. This package measures timer, signal, and hardware
latency. It also tests the functioning of priority-inheritance mutexes.
%prep
%setup -q -n rt-tests-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%autosetup -p1 -n rt-tests-%{version}
%build
%set_build_flags
@ -86,6 +71,9 @@ latency. It also tests the functioning of priority-inheritance mutexes.
%{_mandir}/man8/determine_maximum_mpps.8.*
%changelog
* Tue Oct 26 2021 Peter Robinson <pbrobinson@fedoraproject.org> - 2.2-1
- Update to 2.2
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

View File

@ -1,48 +0,0 @@
From f1d4b4324f7e81fc9779be5659a400daf307116a Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Sat, 21 Nov 2020 00:09:50 -0500
Subject: [PATCH] rt-tests: Don't compress man pages by default
This patch changes the default behavior of the Makefile to install
man pages without compression. This allows distribution build systems to
use the kind of compression they wish to use without the Makefile
getting in the way.
It is still possible to compress the man pages using the Makefile, for
example
make MAN_COMPRESSION=gzip
or
make MAN_OMPRESSION=bzip2
Signed-off-by: John Kacur <jkacur@redhat.com>
---
Makefile | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index c3ebbd7b2a2e..202067493123 100644
--- a/Makefile
+++ b/Makefile
@@ -49,14 +49,13 @@ MANPAGES = src/cyclictest/cyclictest.8 \
src/sched_deadline/deadline_test.8 \
src/ssdd/ssdd.8 \
src/sched_deadline/cyclicdeadline.8 \
- src/cyclictest/get_cyclictest_snapshot.8 \
src/oslat/oslat.8
ifdef PYLIB
- MANPAGES += src/hwlatdetect/hwlatdetect.8
+ MANPAGES += src/cyclictest/get_cyclictest_snapshot.8 \
+ src/hwlatdetect/hwlatdetect.8
endif
-MAN_COMPRESSION ?= gzip
ifeq ($(MAN_COMPRESSION),gzip)
MANPAGES := $(MANPAGES:.8=.8.gz)
else ifeq ($(MAN_COMPRESSION),bzip2)
--
2.26.2

View File

@ -1,192 +0,0 @@
From ed5045179836f32b60e5092c123e6f47da27beba Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 9 Dec 2020 12:11:44 -0500
Subject: [PATCH 1/3] rt-tests: determine_maximum_mpps.sh: Add a menu to get
user settings.
Incorporate the functionality of the get_cpuinfo_mhz.sh script into
determine_maximum_mpps.sh so that get_cpuinfo_mhz.sh can be removed.
Currently determine_maximum_mpps.sh (part of queuelat) asks the user
to edit the PREAMBLE in the script to set the environment.
Get rid of this by creating a menu that allows the user the set these
variables from a menu when running the script.
Here is the output from running the script with the -h option
./src/queuelat/determine_maximum_mpps.sh -h
Usage:
determine_maximum_mpps.sh [OPTIONS]
-c cpulist
List of processors to run on. The default is processor 0
Numbers are separated by commas and may include ranges. Eg. 0,3,7-11
-m maxlat
maximum latency in nanoseconds. The default is 20000
if the maximum is exceeded, that run of queuelat quits
-n cycles
Estimated number of cycles it takes to process one packet
The default is 300
-f
Set the scheduling policy to SCHED_FIFO.
This is the default if not specified
-r
Set the scheduling policy to SCHED_RR.
-p priority
default priority = 1. Valid numbers are from 1 to 99
-h
help
print this help message and exit
Signed-off-by: John Kacur <jkacur@redhat.com>
diff --git a/src/queuelat/determine_maximum_mpps.sh b/src/queuelat/determine_maximum_mpps.sh
index f785147f1bbd..fdede472728c 100755
--- a/src/queuelat/determine_maximum_mpps.sh
+++ b/src/queuelat/determine_maximum_mpps.sh
@@ -6,12 +6,84 @@
# A script to determine the maximum mpps. Logic:
# Increase mpps in 0.5 units
#
-# NOTE: please set "PREAMBLE" to the command line you use for
-#
-PREAMBLE="taskset -c 2 chrt -f 1"
MAXLAT="20000"
CYCLES_PER_PACKET="300"
OUTFILE=/usr/tmp/outfile
+PRIO=1
+CPULIST=0
+SCHED=""
+
+usage()
+{
+ echo "Usage:"
+ echo "$(basename $0) [OPTIONS]"
+ echo
+ echo "-c cpulist"
+ echo " List of processors to run on. The default is processor 0"
+ echo " Numbers are separated by commas and may include ranges. Eg. 0,3,7-11"
+ echo "-m maxlat"
+ echo " maximum latency in nanoseconds. The default is 20000"
+ echo " if the maximum is exceeded, that run of queuelat quits"
+ echo "-n cycles"
+ echo " Estimated number of cycles it takes to process one packet"
+ echo " The default is 300"
+ echo "-f"
+ echo " Set the scheduling policy to SCHED_FIFO."
+ echo " This is the default if not specified"
+ echo "-r"
+ echo " Set the scheduling policy to SCHED_RR".
+ echo "-p priority"
+ echo " default priority = 1. Valid numbers are from 1 to 99"
+ echo "-h"
+ echo " help"
+ echo " print this help message and exit"
+ exit
+}
+
+get_cpuinfo_mhz()
+{
+ grep "cpu MHz" /proc/cpuinfo | cut -f 3 -d " " | sort -rn | head -n1
+}
+
+# Check that the scheduling policy hasn't already been set
+# Exit with an error message if it has
+check_sched()
+{
+ if [ "${SCHED}" != "" ]; then
+ echo "Specify -f or -r, but not both"
+ usage
+ fi
+}
+
+# Process command line options
+while getopts ":c:frp:m:n:h" opt; do
+ case ${opt} in
+ c ) CPULIST="${OPTARG}" ;;
+ m ) MAXLAT="${OPTARG}" ;;
+ n ) CYCLES_PER_PACKET="${OPTARG}" ;;
+ f ) check_sched; SCHED="-f" ;;
+ r ) check_sched; SCHED="-r" ;;
+ p ) PRIO="${OPTARG}" ;;
+ h ) usage ;;
+ * ) echo "no such option"; usage ;;
+ esac
+done
+
+shift $((OPTIND -1 ))
+
+# If the user hasn't specified a scheduling policy
+# then set it to the default SCHED_FIFO
+if [ "${SCHED}" == "" ]; then
+ SCHED="-f"
+fi
+
+# Error checking that the user entered a priority between 1 and 99
+if [[ "${PRIO}" -lt "1" ]] || [[ "${PRIO}" -gt "99" ]]; then
+ echo "PRIO must be a number between 1 and 99"
+ usage
+fi
+
+PREAMBLE="taskset -c ${CPULIST} chrt ${SCHED} ${PRIO}"
echo "Determining maximum mpps the machine can handle"
echo "Will take a few minutes to determine mpps value"
@@ -21,7 +93,7 @@ for mpps in $(seq 3 3 50); do
echo testing "$mpps" Mpps
OUTFILE=$(mktemp)
- $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(sh get_cpuinfo_mhz.sh)" -p "$mpps" -t 30 > "$OUTFILE"
+ $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz)" -p "$mpps" -t 30 > "$OUTFILE"
exceeded=$(grep exceeded "$OUTFILE")
if [ ! -z "$exceeded" ]; then
@@ -37,7 +109,7 @@ for mpps in $(seq $first_mpps -1 3); do
echo testing "$mpps" Mpps
OUTFILE=$(mktemp)
- $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(sh get_cpuinfo_mhz.sh)" -p "$mpps" -t 30 > "$OUTFILE"
+ $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz)" -p "$mpps" -t 30 > "$OUTFILE"
exceeded=$(grep exceeded "$OUTFILE")
if [ -z "$exceeded" ]; then
@@ -54,7 +126,7 @@ for mpps in $(seq "$second_mpps" 0.3 $first_mpps); do
echo testing "$mpps" Mpps
OUTFILE=$(mktemp)
- $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(sh get_cpuinfo_mhz.sh)" -p "$mpps" -t 30 > "$OUTFILE"
+ $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz)" -p "$mpps" -t 30 > "$OUTFILE"
exceeded=$(grep exceeded "$OUTFILE")
if [ ! -z "$exceeded" ]; then
@@ -71,7 +143,7 @@ for mpps in $(seq "$third_mpps" -0.1 3); do
echo testing "$mpps" Mpps
OUTFILE=$(mktemp)
- $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(sh get_cpuinfo_mhz.sh)" -p "$mpps" -t 30 > "$OUTFILE"
+ $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz)" -p "$mpps" -t 30 > "$OUTFILE"
exceeded=$(grep exceeded "$OUTFILE")
if [ -z "$exceeded" ]; then
@@ -90,7 +162,7 @@ while [ $queuelat_failure == 1 ]; do
echo "$mpps Mpps"
for i in $(seq 1 10); do
- $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz.sh)" -p "$mpps" -t 30 > "$OUTFILE"
+ $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz)" -p "$mpps" -t 30 > "$OUTFILE"
exceeded=$(grep exceeded "$OUTFILE")
if [ ! -z "$exceeded" ]; then
@@ -113,7 +185,7 @@ while [ $queuelat_failure == 1 ]; do
echo -n "Starting 10 minutes run with "
echo "$mpps Mpps"
- $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz.sh)" -p "$mpps" -t 600 > "$OUTFILE"
+ $PREAMBLE queuelat -m $MAXLAT -c $CYCLES_PER_PACKET -f "$(get_cpuinfo_mhz)" -p "$mpps" -t 600 > "$OUTFILE"
exceeded=$(grep exceeded "$OUTFILE")
if [ ! -z "$exceeded" ]; then
--
2.26.2

View File

@ -1,93 +0,0 @@
From 009954ca6542c83c39fbb87b0cebf778d89cf79f Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 9 Dec 2020 12:19:59 -0500
Subject: [PATCH 3/3] rt-tests: queuelat: Add a manpage for
determine_maximum_mpps.sh
Add a manpage for determine_maximum_mpps.sh
Signed-off-by: John Kacur <jkacur@redhat.com>
diff --git a/Makefile b/Makefile
index d5b14991032d..fba4546ac50a 100644
--- a/Makefile
+++ b/Makefile
@@ -52,6 +52,7 @@ MANPAGES = src/cyclictest/cyclictest.8 \
src/signaltest/signaltest.8 \
src/pi_tests/pip_stress.8 \
src/queuelat/queuelat.8 \
+ src/queuelat/determine_maximum_mpps.8 \
src/sched_deadline/deadline_test.8 \
src/ssdd/ssdd.8 \
src/sched_deadline/cyclicdeadline.8 \
diff --git a/src/queuelat/determine_maximum_mpps.8 b/src/queuelat/determine_maximum_mpps.8
new file mode 100644
index 000000000000..4a28f1a4e34a
--- /dev/null
+++ b/src/queuelat/determine_maximum_mpps.8
@@ -0,0 +1,62 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH DETERMINE_MAXIMUM_MPPS 8 "Dec 4, 2020"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+determine_maximum_mpps \- Determine the maximum mpps the machine can handle
+.SH SYNOPSIS
+.LP
+determine_maximum_mpps [-c cpulist] [-m maxlat] [-n cycles] [-f | -r] [-p priority] [-h]
+.SH DESCRIPTION
+determine_maximum_mpps will find the maximum mpps parameter which can sustain
+.PP
+.RS
+1. 10 consecutive 30 second runs.
+.br
+2. 1 run of 10 minutes.
+.PP
+.RE
+Without violating the latency specified with $MAXLAT (default 20000)
+.PP
+.SH TERMINOLOGY
+mpps : million-packets-per-second
+.br
+.SH OPTIONS
+.TP
+.B \-c cpulist
+List of processors to run on. The default is processor 0
+.TP
+.B \-m maxlat
+Maximum latency in nanoseconds. The default is 20000. if the maximum is exceeded, that run of queuelat quits.
+.TP
+.B \-n cycles
+Extimated number of cycles it takes to process one packet. The default is 300
+.TP
+.B \-f
+Set the scheduling policy to SCHED_FIFO. This is the default if not specified.
+.TP
+.B \-r
+Set the scheduling policy to SCHED_RR.
+.TP
+.B \-p priority
+default priority = 1. Valid numbers are from 1 to 99
+.TP
+.B \-h
+help
+.LP
+.SH AUTHOR
+determine_maximum_mpps was written by
+.br
+Marcelo Tosatti <mtosatti@redhat.com>
+.PP
+This man page was written by John Kacur <jkacur@redhat.com>
--
2.26.2

View File

@ -1,57 +0,0 @@
From a6114da09c475c0083fe3a681e79ba2c05d08848 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 8 Dec 2020 13:25:53 -0500
Subject: [PATCH 2/3] rt-tests: queuelat: Remove get_cpuinfo_mhz.sh and old
Makefile
The functionality in get_cpuinfo_mhz.sh has been incorporated into
determine_maximum_mpps.sh, so it can safely be removed.
The queuelat is built from the rt-tests suite Makefile, and the old
Makefile in the queuelat directory can be removed.
Signed-off-by: John Kacur <jkacur@redhat.com>
diff --git a/Makefile b/Makefile
index 3b38d21afb3a..d5b14991032d 100644
--- a/Makefile
+++ b/Makefile
@@ -209,7 +209,6 @@ rebuild:
install: all install_manpages install_hwlatdetect install_get_cyclictest_snapshot
mkdir -p "$(DESTDIR)$(bindir)"
cp $(TARGETS) "$(DESTDIR)$(bindir)"
- install src/queuelat/get_cpuinfo_mhz.sh "$(DESTDIR)$(bindir)"
install src/queuelat/determine_maximum_mpps.sh "${DESTDIR}${bindir}"
.PHONY: install_hwlatdetect
diff --git a/src/queuelat/Makefile b/src/queuelat/Makefile
deleted file mode 100644
index b4d327829b17..000000000000
--- a/src/queuelat/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-queuelat: queuelat.o
- cc -o queuelat queuelat.o
-
-queuelat.o: queuelat.c
- cc -c -Wall queuelat.c
-
-clean:
- rm queuelat queuelat.o
-
diff --git a/src/queuelat/get_cpuinfo_mhz.sh b/src/queuelat/get_cpuinfo_mhz.sh
deleted file mode 100755
index 14a2c12c478f..000000000000
--- a/src/queuelat/get_cpuinfo_mhz.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2018 Marcelo Tosatti <mtosatti@redhat.com>
-
-mhz=$(grep "cpu MHz" /proc/cpuinfo | cut -f 3 -d " " | sort -rn | head -n1)
-echo "$mhz"
--
2.26.2

View File

@ -1 +1 @@
SHA512 (rt-tests-1.9.tar.xz) = 66f086dbda31567e6dc5297424ec66b2c6bd7cb0e065c32e02c326f33967f3a301b1b34f9eb0dd0acd853279c64fb1c2bc271ac26648f4abc3f6090ba6484cfa
SHA512 (rt-tests-2.2.tar.xz) = 826dc8894dd8670e705566b5224f54bdee89e5b48f21ca00e6c4061f28c4fbe2dab14c1e1b1302fec7011dbf28f3eb88c1b8adc137fed7d17958ea972e3c08b1