From: Petr Vorel <pvorel@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [RFC PATCH] rm unused controllers/io-throttle tests
Date: Wed, 23 Jun 2021 17:40:04 +0200 [thread overview]
Message-ID: <YNNV1NeXNUyLNE4a@pevik> (raw)
In-Reply-To: <20210621143056.2724-1-rpalethorpe@suse.com>
Hi Richie,
[Cc automated-testing ML ]
> These files do not appear in any runtest file nor are they called from
> anywhere else.
A bit of googling Documentation/controllers/io-throttle.txt mentioned in README
was sent to kernel ML in 2008 [1] for 2.6.26-rc6, from this time our memory
tests originated [2]. But it looks like it never got merged
(<linux/blk-io-throttle.h> mentioned in patch "i/o bandwidth controller
infrastructure" [3] didn't get into git).
myfunctions-io.sh uses /dev/blockioctl, which IMHO never got into mainline.
IMHO it should have never even got in. Thanks for asking for delete.
Acked-by: Petr Vorel <pvorel@suse.cz>
Kind regards,
Petr
[1] https://lists.linuxfoundation.org/pipermail/containers/2008-June/011372.html
[2] https://lists.linuxfoundation.org/pipermail/containers/2008-June/011384.html
[3] https://lists.linuxfoundation.org/pipermail/containers/2008-June/011373.html
> Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
> ---
> .../kernel/controllers/io-throttle/.gitignore | 1 -
> .../kernel/controllers/io-throttle/Makefile | 32 --
> .../kernel/controllers/io-throttle/README | 56 ----
> .../io-throttle/io_throttle_testplan.txt | 36 ---
> .../kernel/controllers/io-throttle/iobw.c | 281 ------------------
> .../controllers/io-throttle/myfunctions-io.sh | 61 ----
> .../io-throttle/run_io_throttle_test.sh | 123 --------
> 7 files changed, 590 deletions(-)
> delete mode 100644 testcases/kernel/controllers/io-throttle/.gitignore
> delete mode 100644 testcases/kernel/controllers/io-throttle/Makefile
> delete mode 100644 testcases/kernel/controllers/io-throttle/README
> delete mode 100644 testcases/kernel/controllers/io-throttle/io_throttle_testplan.txt
> delete mode 100644 testcases/kernel/controllers/io-throttle/iobw.c
> delete mode 100755 testcases/kernel/controllers/io-throttle/myfunctions-io.sh
> delete mode 100755 testcases/kernel/controllers/io-throttle/run_io_throttle_test.sh
> diff --git a/testcases/kernel/controllers/io-throttle/.gitignore b/testcases/kernel/controllers/io-throttle/.gitignore
> deleted file mode 100644
> index 6836f7b74..000000000
> --- a/testcases/kernel/controllers/io-throttle/.gitignore
> +++ /dev/null
> @@ -1 +0,0 @@
> -/iobw
> diff --git a/testcases/kernel/controllers/io-throttle/Makefile b/testcases/kernel/controllers/io-throttle/Makefile
> deleted file mode 100644
> index ceeba7362..000000000
> --- a/testcases/kernel/controllers/io-throttle/Makefile
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -#
> -# kernel/controllers/io-throttle testcase suite Makefile.
> -#
> -# Copyright (C) 2009, Cisco Systems Inc.
> -#
> -# 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.
> -#
> -# Ngie Cooper, July 2009
> -#
> -
> -top_srcdir ?= ../../../..
> -
> -include $(top_srcdir)/include/mk/testcases.mk
> -include $(abs_srcdir)/../Makefile.inc
> -
> -INSTALL_TARGETS := run_io_throttle_test.sh myfunctions-io.sh
> -
> -LDLIBS += -lm -lcontrollers
> -
> -include $(top_srcdir)/include/mk/generic_leaf_target.mk
> diff --git a/testcases/kernel/controllers/io-throttle/README b/testcases/kernel/controllers/io-throttle/README
> deleted file mode 100644
> index e5980fb6c..000000000
> --- a/testcases/kernel/controllers/io-throttle/README
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -TEST SUITE:
> -
> -The directory io-throttle contains the tests related to block device I/O
> -bandwdith controller.
> -
> -More testcases are expected to be added in future.
> -
> -TESTS AIM:
> -
> -The aim of the tests is to check the block device I/O throttling functionality
> -for cgroups.
> -
> -FILES DESCRIPTION:
> -
> -iobw.c
> ----------------
> -Simple benchmark to generate parallel streams of direct I/O (O_DIRECT). This
> -benchmark fork()s one task per stream. Each task creates a separate file in the
> -current working directory, fills it with data using O_DIRECT writes and re-read
> -the whole file always in O_DIRECT mode. Different timestamps are used to
> -evaluate per-task I/O rate and total I/O rate (seen by the parent).
> -
> -myfunctions.sh
> -----------
> -This file contains the functions which are common for the io-throttle tests.
> -For ex. the setup and cleanup functions which do the setup for running the
> -test and do the cleanup once the test finishes. The setup() function creates
> -/dev/blockioctl directory and mounts cgroup filesystem on it with memory
> -controller. It then creates a number(n) of groups in /dev/blockioctl. The
> -cleanup function does a complete cleanup of the system.
> -
> -Most of the error scenarios have been taken care of for a sane cleanup of the
> -system. However if cleanup fails in any case, just manually execute the
> -commands written in cleanup function in myfunctions.sh.
> -One of the most common causes of failed cleanup is that you have done cd into
> -any of the groups in controller dir tree.
> -
> -run_io_throttle_test.sh
> -------------------
> -This script creates different scenarios for I/O bandwidth controller testing
> -and fires (n) tasks in different groups to write and read different I/O streams
> -etc. It waits for the return status from tasks and reports test pass/fail
> -accordingly.
> -
> -Makefile
> ---------
> -The usual makefile for this directory
> -
> -PASS/FAIL CRITERION:
> -==================
> -The test cases are intelligent enough in deciding the pass or failure of a
> -test.
> -
> -README:
> ---------
> -This file.
> diff --git a/testcases/kernel/controllers/io-throttle/io_throttle_testplan.txt b/testcases/kernel/controllers/io-throttle/io_throttle_testplan.txt
> deleted file mode 100644
> index fa5b85b42..000000000
> --- a/testcases/kernel/controllers/io-throttle/io_throttle_testplan.txt
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -The I/O bandwidth controller testplan includes a complete set of testcases to
> -verify the effectiveness of the block device I/O throttling capabilities for
> -cgroups.
> -
> -I/O bandwidth limitations are imposed by the testcase script and verified doing
> -I/O activity on a limited block device. Tests are supposed to be passed if the
> -I/O rates of all the different workloads always respect the I/O limitations.
> -
> -TESTCASE DESCRIPTION:
> -====================
> -First of all we evaluate the physical I/O bandwidth (physical-io-bw) of the
> -block device where the current working directory resides.
> -
> -Based on the physical I/O bandwidth three cgroups are created: cgroup-1,
> -cgroup-2, cgroup-3. Cgroups use respectively the following I/O bandwidth
> -limitations:
> -- cgroup-1: physical-io-bw / 2
> -- cgroup-2: physical-io-bw / 4
> -- cgroup-3: physical-io-bw / 8
> -
> -Each test is considered passed only if the I/O limitations above are respected.
> -
> -Currently the following different scenarios are tested:
> -- 1 single stream per cgroup using leaky-bucket I/O throttling
> -- 1 single stream per cgroup using token-bucket I/O throttling
> -- 2 parallel streams per cgroup using leaky-bucket I/O throttling
> -- 2 parallel streams per cgroup using token-bucket I/O throttling
> -- 4 parallel streams per cgroup using leaky-bucket I/O throttling
> -- 4 parallel streams per cgroup using token-bucket I/O throttling
> -
> -For any other information please refer to
> -Documentation/controllers/io-throttle.txt in kernel documentation.
> -
> -Questions?
> -----------
> -Send email to: righi.andrea@gmail.com
> diff --git a/testcases/kernel/controllers/io-throttle/iobw.c b/testcases/kernel/controllers/io-throttle/iobw.c
> deleted file mode 100644
> index e4d9c9bb6..000000000
> --- a/testcases/kernel/controllers/io-throttle/iobw.c
> +++ /dev/null
> @@ -1,281 +0,0 @@
> -/*
> - * iobw.c - simple I/O bandwidth benchmark
> - *
> - * 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., 59 Temple Place - Suite 330,
> - * Boston, MA 021110-1307, USA.
> - *
> - * Copyright (C) 2008 Andrea Righi <righi.andrea@gmail.com>
> - */
> -
> -#define _GNU_SOURCE
> -#define __USE_GNU
> -
> -#include <errno.h>
> -#include <stdio.h>
> -#include <stdlib.h>
> -#include <fcntl.h>
> -#include <signal.h>
> -#include <string.h>
> -#include <unistd.h>
> -#include <limits.h>
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -#include <sys/time.h>
> -#include <sys/wait.h>
> -
> -#ifndef PAGE_SIZE
> -#define PAGE_SIZE sysconf(_SC_PAGE_SIZE)
> -#endif
> -
> -#define align(x,a) __align_mask(x,(typeof(x))(a)-1)
> -#define __align_mask(x,mask) (((x)+(mask))&~(mask))
> -#define kb(x) ((x) >> 10)
> -
> -const char usage[] = "Usage: iobw [-direct] threads chunk_size data_size\n";
> -const char child_fmt[] = "(%s) task %3d: time %4lu.%03lu bw %7lu KiB/s (%s)\n";
> -const char parent_fmt[] =
> - "(%s) parent %d: time %4lu.%03lu bw %7lu KiB/s (%s)\n";
> -
> -static int directio = 0;
> -static size_t data_size = 0;
> -static size_t chunk_size = 0;
> -
> -typedef enum {
> - OP_WRITE,
> - OP_READ,
> - NUM_IOPS,
> -} iops_t;
> -
> -static const char *iops[] = {
> - "WRITE",
> - "READ ",
> - "TOTAL",
> -};
> -
> -static int threads;
> -pid_t *children;
> -
> -char *mygroup;
> -
> -static void print_results(int id, iops_t op, size_t bytes, struct timeval *diff)
> -{
> - fprintf(stdout, id ? child_fmt : parent_fmt,
> - mygroup, id, diff->tv_sec, diff->tv_usec / 1000,
> - (bytes / (diff->tv_sec * 1000000L + diff->tv_usec))
> - * 1000000L / 1024, iops[op]);
> -}
> -
> -static void thread(int id)
> -{
> - struct timeval start, stop, diff;
> - int fd, i, ret;
> - size_t n;
> - void *buf;
> - int flags = O_CREAT | O_RDWR | O_LARGEFILE;
> - char filename[32];
> -
> - ret = posix_memalign(&buf, PAGE_SIZE, chunk_size);
> - if (ret < 0) {
> - fprintf(stderr,
> - "ERROR: task %d couldn't allocate %zu bytes (%s)\n",
> - id, chunk_size, strerror(errno));
> - exit(1);
> - }
> - memset(buf, 0xaa, chunk_size);
> -
> - snprintf(filename, sizeof(filename), "%s-%d-iobw.tmp", mygroup, id);
> - if (directio)
> - flags |= O_DIRECT;
> - fd = open(filename, flags, 0600);
> - if (fd < 0) {
> - fprintf(stderr, "ERROR: task %d couldn't open %s (%s)\n",
> - id, filename, strerror(errno));
> - free(buf);
> - exit(1);
> - }
> -
> - /* Write */
> - lseek(fd, 0, SEEK_SET);
> - n = 0;
> - gettimeofday(&start, NULL);
> - while (n < data_size) {
> - i = write(fd, buf, chunk_size);
> - if (i < 0) {
> - fprintf(stderr, "ERROR: task %d writing to %s (%s)\n",
> - id, filename, strerror(errno));
> - ret = 1;
> - goto out;
> - }
> - n += i;
> - }
> - gettimeofday(&stop, NULL);
> - timersub(&stop, &start, &diff);
> - print_results(id + 1, OP_WRITE, data_size, &diff);
> -
> - /* Read */
> - lseek(fd, 0, SEEK_SET);
> - n = 0;
> - gettimeofday(&start, NULL);
> - while (n < data_size) {
> - i = read(fd, buf, chunk_size);
> - if (i < 0) {
> - fprintf(stderr, "ERROR: task %d reading to %s (%s)\n",
> - id, filename, strerror(errno));
> - ret = 1;
> - goto out;
> - }
> - n += i;
> - }
> - gettimeofday(&stop, NULL);
> - timersub(&stop, &start, &diff);
> - print_results(id + 1, OP_READ, data_size, &diff);
> -out:
> - close(fd);
> - unlink(filename);
> - free(buf);
> - exit(ret);
> -}
> -
> -static void spawn(int id)
> -{
> - pid_t pid;
> -
> - pid = fork();
> - switch (pid) {
> - case -1:
> - fprintf(stderr, "ERROR: couldn't fork thread %d\n", id);
> - exit(1);
> - case 0:
> - thread(id);
> - default:
> - children[id] = pid;
> - }
> -}
> -
> -void signal_handler(int sig)
> -{
> - char filename[32];
> - int i;
> -
> - for (i = 0; i < threads; i++)
> - if (children[i])
> - kill(children[i], SIGKILL);
> -
> - for (i = 0; i < threads; i++) {
> - struct stat mystat;
> -
> - snprintf(filename, sizeof(filename), "%s-%d-iobw.tmp",
> - mygroup, i);
> - if (stat(filename, &mystat) < 0)
> - continue;
> - unlink(filename);
> - }
> -
> - fprintf(stdout, "received signal %d, exiting\n", sig);
> - exit(0);
> -}
> -
> -unsigned long long memparse(char *ptr, char **retptr)
> -{
> - unsigned long long ret = strtoull(ptr, retptr, 0);
> -
> - switch (**retptr) {
> - case 'G':
> - case 'g':
> - ret <<= 10;
> - case 'M':
> - case 'm':
> - ret <<= 10;
> - case 'K':
> - case 'k':
> - ret <<= 10;
> - (*retptr)++;
> - default:
> - break;
> - }
> - return ret;
> -}
> -
> -int main(int argc, char *argv[])
> -{
> - struct timeval start, stop, diff;
> - char *end;
> - int i;
> -
> - if (argv[1] && strcmp(argv[1], "-direct") == 0) {
> - directio = 1;
> - argc--;
> - argv++;
> - }
> - if (argc != 4) {
> - fprintf(stderr, usage);
> - exit(1);
> - }
> - if ((threads = atoi(argv[1])) == 0) {
> - fprintf(stderr, usage);
> - exit(1);
> - }
> - chunk_size = align(memparse(argv[2], &end), PAGE_SIZE);
> - if (*end) {
> - fprintf(stderr, usage);
> - exit(1);
> - }
> - data_size = align(memparse(argv[3], &end), PAGE_SIZE);
> - if (*end) {
> - fprintf(stderr, usage);
> - exit(1);
> - }
> -
> - /* retrieve group name */
> - mygroup = getenv("MYGROUP");
> - if (!mygroup) {
> - fprintf(stderr,
> - "ERROR: undefined environment variable MYGROUP\n");
> - exit(1);
> - }
> -
> - children = malloc(sizeof(pid_t) * threads);
> - if (!children) {
> - fprintf(stderr, "ERROR: not enough memory\n");
> - exit(1);
> - }
> -
> - /* handle user interrupt */
> - signal(SIGINT, signal_handler);
> - /* handle kill from shell */
> - signal(SIGTERM, signal_handler);
> -
> - fprintf(stdout, "chunk_size %zuKiB, data_size %zuKiB\n",
> - kb(chunk_size), kb(data_size));
> - fflush(stdout);
> -
> - gettimeofday(&start, NULL);
> - for (i = 0; i < threads; i++)
> - spawn(i);
> - for (i = 0; i < threads; i++) {
> - int status;
> - wait(&status);
> - if (!WIFEXITED(status))
> - exit(1);
> - }
> - gettimeofday(&stop, NULL);
> -
> - timersub(&stop, &start, &diff);
> - print_results(0, NUM_IOPS, data_size * threads * NUM_IOPS, &diff);
> - fflush(stdout);
> - free(children);
> -
> - exit(0);
> -}
> diff --git a/testcases/kernel/controllers/io-throttle/myfunctions-io.sh b/testcases/kernel/controllers/io-throttle/myfunctions-io.sh
> deleted file mode 100755
> index bf4bb2b9a..000000000
> --- a/testcases/kernel/controllers/io-throttle/myfunctions-io.sh
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -#!/bin/sh
> -#
> -# 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., 59 Temple Place - Suite 330,
> -# Boston, MA 021110-1307, USA.
> -#
> -# Copyright (C) 2008 Andrea Righi <righi.andrea@gmail.com>
> -#
> -# usage . myfunctions.sh
> -
> -setup()
> -{
> - # create testcase cgroups
> - if [ -e /dev/blockioctl ]; then
> - echo "WARN: /dev/blockioctl already exist! overwriting."
> - cleanup
> - fi
> - mkdir /dev/blockioctl
> - mount -t cgroup -o blockio cgroup /dev/blockioctl
> - if [ $? -ne 0 ]; then
> - echo "ERROR: could not mount cgroup filesystem " \
> - " on /dev/blockioctl. Exiting test."
> - cleanup
> - exit 1
> - fi
> - for i in `seq 1 3`; do
> - if [ -e /dev/blockioctl/cgroup-$i ]; then
> - rmdir /dev/blockioctl/cgroup-$i
> - echo "WARN: earlier cgroup-$i found and removed"
> - fi
> - mkdir /dev/blockioctl/cgroup-$i
> - if [ $? -ne 0 ]; then
> - echo "ERROR: could not create cgroup-$i" \
> - "Check your permissions. Exiting test."
> - cleanup
> - exit 1
> - fi
> - done
> -}
> -
> -cleanup()
> -{
> - echo "Cleanup called"
> - for i in `seq 1 3`; do
> - rmdir /dev/blockioctl/cgroup-$i
> - rm -f /tmp/cgroup-$i.out
> - done
> - umount /dev/blockioctl
> - rmdir /dev/blockioctl
> -}
> diff --git a/testcases/kernel/controllers/io-throttle/run_io_throttle_test.sh b/testcases/kernel/controllers/io-throttle/run_io_throttle_test.sh
> deleted file mode 100755
> index c855fd052..000000000
> --- a/testcases/kernel/controllers/io-throttle/run_io_throttle_test.sh
> +++ /dev/null
> @@ -1,123 +0,0 @@
> -#!/bin/bash
> -#
> -# 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., 59 Temple Place - Suite 330,
> -# Boston, MA 021110-1307, USA.
> -#
> -# Copyright (C) 2008 Andrea Righi <righi.andrea@gmail.com>
> -#
> -# Usage: ./run_io_throttle_test.sh
> -# Description: test block device I/O bandwidth controller functionalities
> -
> -. ./myfunctions-io.sh
> -
> -trap cleanup SIGINT
> -
> -BUFSIZE=16m
> -DATASIZE=64m
> -
> -setup
> -
> -# get the device name of the entire mounted block device
> -dev=`df -P . | sed '1d' | cut -d' ' -f1 | sed 's/[p]*[0-9]*$//'`
> -
> -# evaluate device bandwidth
> -export MYGROUP=
> -phys_bw=`./iobw -direct 1 $BUFSIZE $DATASIZE | grep TOTAL | awk '{print $7}'`
> -if [ $? -ne 0 ]; then
> - echo "ERROR: could not evaluate i/o bandwidth of $dev. Exiting test."
> - cleanup
> - exit 1
> -fi
> -echo ">> physical i/o bandwidth limit is: $phys_bw KiB/s"
> -# show cgroup i/o bandwidth limits
> -for i in `seq 1 3`; do
> - MYGROUP=cgroup-$i
> - echo "($MYGROUP) max i/o bw: " \
> - "$(($phys_bw / `echo 2^$i | bc`)) KiB/s + O_DIRECT"
> -done
> -
> -for tasks in 1 2 4; do
> -for strategy in 0 1; do
> - # set bw limiting rules
> - if [ -f /dev/blockioctl/blockio.bandwidth ]; then
> - io_throttle_file=blockio.bandwidth
> - elif [ -f /dev/blockioctl/blockio.bandwidth-max ]; then
> - io_throttle_file=blockio.bandwidth-max
> - else
> - echo "ERROR: unknown kernel ABI. Exiting test."
> - cleanup
> - exit 1
> - fi
> - for i in `seq 1 3`; do
> - limit=$(($phys_bw * 1024 / `echo 2^$i | bc`))
> - IOBW[$i]=$(($limit / 1024))
> - /bin/echo $dev:$limit:$strategy:$limit > \
> - /dev/blockioctl/cgroup-$i/${io_throttle_file}
> - if [ $? -ne 0 ]; then
> - echo "ERROR: could not set i/o bandwidth limit for cgroup-$i. Exiting test."
> - cleanup
> - exit 1
> - fi
> - done
> -
> - # run benchmark
> - if [ $tasks -eq 1 ]; then
> - stream="stream"
> - else
> - stream="streams"
> - fi
> - echo -n ">> testing $tasks parallel $stream per cgroup "
> - if [ $strategy -eq 0 ]; then
> - echo "(leaky-bucket i/o throttling)"
> - else
> - echo "(token-bucket i/o throttling)"
> - fi
> - for i in `seq 1 3`; do
> - MYGROUP=cgroup-$i
> - /bin/echo $$ > /dev/blockioctl/$MYGROUP/tasks
> - if [ $? -ne 0 ]; then
> - echo "ERROR: could not set i/o bandwidth limit for cgroup-$i. Exiting test."
> - cleanup
> - exit 1
> - fi
> - # exec i/o benchmark
> - ./iobw -direct $tasks $BUFSIZE $DATASIZE > /tmp/$MYGROUP.out &
> - PID[$i]=$!
> - done
> - /bin/echo $$ > /dev/blockioctl/tasks
> -
> - # wait for children completion
> - for i in `seq 1 3`; do
> - MYGROUP=cgroup-$i
> - wait ${PID[$i]}
> - ret=$?
> - if [ $ret -ne 0 ]; then
> - echo "ERROR: error code $ret during test $tasks.$strategy.$i. Exiting test."
> - cleanup
> - exit 1
> - fi
> - iorate=`grep parent /tmp/${MYGROUP}.out | awk '{print $7}'`
> - diff=$((${IOBW[$i]} - $iorate))
> - echo "($MYGROUP) i/o-bw ${IOBW[$i]} KiB/s, i/o-rate $iorate KiB/s, err $diff KiB/s"
> - if [ ${IOBW[$i]} -ge $iorate ]; then
> - echo "TPASS Block device I/O bandwidth controller: test $tasks.$strategy.$i PASSED";
> - else
> - echo "TFAIL Block device I/O bandwidth controller: test $tasks.$strategy.$i FAILED";
> - fi
> - done
> -done
> -done
> -
> -cleanup
next prev parent reply other threads:[~2021-06-23 15:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-21 14:30 [LTP] [RFC PATCH] rm unused controllers/io-throttle tests Richard Palethorpe
2021-06-23 15:40 ` Petr Vorel [this message]
2021-06-25 8:30 ` Li Wang
2021-06-28 15:02 ` Petr Vorel
2021-06-25 9:58 ` [LTP] [Automated-testing] " Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YNNV1NeXNUyLNE4a@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.