linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Xiao Ni <xni@redhat.com>
To: mariusz.tkaczyk@linux.intel.com
Cc: linux-raid@vger.kernel.org, heinzm@redhat.com, ncroxon@redhat.com
Subject: [PATCH 04/19] mdadm/tests: test enhance
Date: Wed, 22 May 2024 16:50:41 +0800	[thread overview]
Message-ID: <20240522085056.54818-5-xni@redhat.com> (raw)
In-Reply-To: <20240522085056.54818-1-xni@redhat.com>

There are two changes.
First, if md module is not loaded, it gives error when reading
speed_limit_max. So read the value after loading md module which
is done in do_setup

Second, sometimes the test reports error sync action doesn't
happen. But dmesg shows sync action is done. So limit the sync
speed before test. It doesn't affect the test run time. Because
check wait sets the max speed before waiting sync action. And
recording speed_limit_max/min in do_setup.

Fixes: 4c12714d1ca0 ('test: run tests on system level mdadm')
Signed-off-by: Xiao Ni <xni@redhat.com>
---
 test          | 10 +++++-----
 tests/func.sh | 26 +++++++++++++++++++++++---
 2 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/test b/test
index 338c2db44fa7..ff403293d60b 100755
--- a/test
+++ b/test
@@ -6,7 +6,10 @@ targetdir="/var/tmp"
 logdir="$targetdir"
 config=/tmp/mdadm.conf
 testdir=$PWD/tests
-system_speed_limit=`cat /proc/sys/dev/raid/speed_limit_max`
+system_speed_limit_max=0
+system_speed_limit_min=0
+test_speed_limit_min=100
+test_speed_limit_max=500
 devlist=
 
 savelogs=0
@@ -39,10 +42,6 @@ ctrl_c() {
 	ctrl_c_error=1
 }
 
-restore_system_speed_limit() {
-	echo $system_speed_limit > /proc/sys/dev/raid/speed_limit_max
-}
-
 mdadm() {
 	rm -f $targetdir/stderr
 	case $* in
@@ -103,6 +102,7 @@ do_test() {
 		do_clean
 		# source script in a subshell, so it has access to our
 		# namespace, but cannot change it.
+		control_system_speed_limit
 		echo -ne "$_script... "
 		if ( set -ex ; . $_script ) &> $targetdir/log
 		then
diff --git a/tests/func.sh b/tests/func.sh
index b474442b6abe..221cff158f8c 100644
--- a/tests/func.sh
+++ b/tests/func.sh
@@ -136,6 +136,23 @@ check_env() {
 	fi
 }
 
+record_system_speed_limit() {
+	system_speed_limit_max=`cat /proc/sys/dev/raid/speed_limit_max`
+	system_speed_limit_min=`cat /proc/sys/dev/raid/speed_limit_min`
+}
+
+# To avoid sync action finishes before checking it, it needs to limit
+# the sync speed
+control_system_speed_limit() {
+	echo $test_speed_limit_min > /proc/sys/dev/raid/speed_limit_min
+	echo $test_speed_limit_max > /proc/sys/dev/raid/speed_limit_max
+}
+
+restore_system_speed_limit() {
+	echo $system_speed_limit_min > /proc/sys/dev/raid/speed_limit_max
+	echo $system_speed_limit_max > /proc/sys/dev/raid/speed_limit_max
+}
+
 do_setup() {
 	trap cleanup 0 1 3 15
 	trap ctrl_c 2
@@ -214,6 +231,7 @@ do_setup() {
 	ulimit -c unlimited
 	[ -f /proc/mdstat ] || modprobe md_mod
 	echo 0 > /sys/module/md_mod/parameters/start_ro
+	record_system_speed_limit
 }
 
 # check various things
@@ -265,15 +283,17 @@ check() {
 		fi
 	;;
 	wait )
-		p=`cat /proc/sys/dev/raid/speed_limit_max`
-		echo 2000000 > /proc/sys/dev/raid/speed_limit_max
+		min=`cat /proc/sys/dev/raid/speed_limit_min`
+		max=`cat /proc/sys/dev/raid/speed_limit_max`
+		echo 200000 > /proc/sys/dev/raid/speed_limit_max
 		sleep 0.1
 		while grep -Eq '(resync|recovery|reshape|check|repair) *=' /proc/mdstat ||
 			grep -v idle > /dev/null /sys/block/md*/md/sync_action
 		do
 			sleep 0.5
 		done
-		echo $p > /proc/sys/dev/raid/speed_limit_max
+		echo $min > /proc/sys/dev/raid/speed_limit_min
+		echo $max > /proc/sys/dev/raid/speed_limit_max
 	;;
 	state )
 		grep -sq "blocks.*\[$2\]\$" /proc/mdstat ||
-- 
2.32.0 (Apple Git-132)


  parent reply	other threads:[~2024-05-22  8:51 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-22  8:50 [PATCH 00/19] mdadm/tests: enhance/fix regression cases Xiao Ni
2024-05-22  8:50 ` [PATCH 01/19] Change some error messages to info level Xiao Ni
2024-05-23 14:20   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 02/19] mdadm: Start update_opt from 0 Xiao Ni
2024-05-23 14:22   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 03/19] Don't control reshape speed in daemon Xiao Ni
2024-05-23 14:25   ` Mariusz Tkaczyk
2024-05-22  8:50 ` Xiao Ni [this message]
2024-05-23 14:26   ` [PATCH 04/19] mdadm/tests: test enhance Mariusz Tkaczyk
2024-05-23 14:39     ` Xiao Ni
2024-05-23 14:52       ` Mariusz Tkaczyk
2024-05-23 14:56   ` Xiao Ni
2024-05-24  7:59   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 05/19] mdadm/tests: test don't fail when systemd reports error Xiao Ni
2024-05-23 14:29   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 06/19] mdadm/tests: names_template enhance Xiao Ni
2024-05-23 14:37   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 07/19] mdadm/tests: 03assem-incr enhance Xiao Ni
2024-05-23 14:39   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 08/19] mdadm/tests 03r0assem enhance Xiao Ni
2024-05-23 14:40   ` Mariusz Tkaczyk
2024-05-22  8:50 ` [PATCH 09/19] mdadm/tests: remove 03r5assem-failed Xiao Ni
2024-05-22  8:50 ` [PATCH 10/19] mdadm/tests: 03r5assemV1 Xiao Ni
2024-05-22  8:50 ` [PATCH 11/19] mdadm/tests: remove 04r5swap.broken Xiao Ni
2024-05-22  8:50 ` [PATCH 12/19] tests/04update-metadata skip linear Xiao Ni
2024-05-22  8:50 ` [PATCH 13/19] mdadm/tests: 05r5-internalbitmap Xiao Ni
2024-05-22  8:50 ` [PATCH 14/19] mdadm/tests: 05r6-bitmapfile Xiao Ni
2024-05-22  8:50 ` [PATCH 15/19] mdadm/tests: 06name enhance Xiao Ni
2024-05-22  8:50 ` [PATCH 16/19] mdadm/tests: 07autoassemble Xiao Ni
2024-05-22  8:50 ` [PATCH 17/19] mdadm/tests: 07autodetect.broken can be removed Xiao Ni
2024-05-22  8:50 ` [PATCH 18/19] mdadm/tests: 07changelevelintr Xiao Ni
2024-05-22  8:50 ` [PATCH 19/19] mdadm/tests: disable selinux Xiao Ni
2024-05-24  8:45 ` [PATCH 00/19] mdadm/tests: enhance/fix regression cases Mariusz Tkaczyk

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=20240522085056.54818-5-xni@redhat.com \
    --to=xni@redhat.com \
    --cc=heinzm@redhat.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=mariusz.tkaczyk@linux.intel.com \
    --cc=ncroxon@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).