120 lines
2.7 KiB
Diff
120 lines
2.7 KiB
Diff
|
From f83e11ff4332ce7ca24f6bfede4fe60c48123700 Mon Sep 17 00:00:00 2001
|
||
|
From: Leo Yan <leo.yan@linaro.org>
|
||
|
Date: Thu, 3 Jun 2021 17:59:15 +0800
|
||
|
Subject: [PATCH 19/33] tests: stress: Add multi-threads stress testing for
|
||
|
PV/VG/LV
|
||
|
|
||
|
This patch is to add the stress testing, which launches three threads,
|
||
|
one thread is for creating/removing PV, one thread is for
|
||
|
creating/removing VG, and the last one thread is for LV operations.
|
||
|
|
||
|
Signed-off-by: Leo Yan <leo.yan@linaro.org>
|
||
|
Signed-off-by: Heming Zhao <heming.zhao@suse.com>
|
||
|
---
|
||
|
test/shell/stress_multi_threads_2.sh | 93 ++++++++++++++++++++++++++++++++++++
|
||
|
1 file changed, 93 insertions(+)
|
||
|
create mode 100644 test/shell/stress_multi_threads_2.sh
|
||
|
|
||
|
diff --git a/test/shell/stress_multi_threads_2.sh b/test/shell/stress_multi_threads_2.sh
|
||
|
new file mode 100644
|
||
|
index 000000000000..a035b5727c97
|
||
|
--- /dev/null
|
||
|
+++ b/test/shell/stress_multi_threads_2.sh
|
||
|
@@ -0,0 +1,93 @@
|
||
|
+#!/usr/bin/env bash
|
||
|
+
|
||
|
+# Copyright (C) 2021 Seagate, Inc. All rights reserved.
|
||
|
+#
|
||
|
+# This copyrighted material is made available to anyone wishing to use,
|
||
|
+# modify, copy, or redistribute it subject to the terms and conditions
|
||
|
+# of the GNU General Public License v2.
|
||
|
+#
|
||
|
+# 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
|
||
|
+
|
||
|
+
|
||
|
+SKIP_WITH_LVMPOLLD=1
|
||
|
+
|
||
|
+. lib/inittest
|
||
|
+
|
||
|
+aux prepare_devs 8
|
||
|
+get_devs
|
||
|
+
|
||
|
+pvcreate -M2 "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" "$dev6"
|
||
|
+
|
||
|
+test_vg_thread1()
|
||
|
+{
|
||
|
+ for i in {1..1000}
|
||
|
+ do
|
||
|
+ vgcreate --shared -M2 "$vg1" "$dev1" "$dev2" "$dev3"
|
||
|
+ vgremove -ff $vg1
|
||
|
+ done
|
||
|
+}
|
||
|
+
|
||
|
+test_vg_thread2()
|
||
|
+{
|
||
|
+ vgcreate --shared -M2 "$vg2" "$dev4" "$dev5" "$dev6"
|
||
|
+
|
||
|
+ for i in {1..1000}
|
||
|
+ do
|
||
|
+ # Create new logic volume and deactivate it
|
||
|
+ lvcreate -a n --zero n -l 1 -n foo $vg2
|
||
|
+
|
||
|
+ # Set minor number
|
||
|
+ lvchange $vg2/foo -My --major=255 --minor=124
|
||
|
+
|
||
|
+ # Activate logic volume
|
||
|
+ lvchange $vg2/foo -a y
|
||
|
+
|
||
|
+ # Extend logic volume with 10%
|
||
|
+ lvextend -l+10 $vg2/foo
|
||
|
+
|
||
|
+ # Deactivate logic volume
|
||
|
+ lvchange $vg2/foo -a n
|
||
|
+
|
||
|
+ # Deactivate volume group
|
||
|
+ vgchange $vg2 -a n
|
||
|
+
|
||
|
+ # Activate volume group with shareable mode
|
||
|
+ vgchange $vg2 -a sy
|
||
|
+
|
||
|
+ # lvextend fails due to mismatched lock mode
|
||
|
+ not lvextend -l+10 $vg2/foo
|
||
|
+
|
||
|
+ # Promote volume group to exclusive mode
|
||
|
+ vgchange $vg2 -a ey
|
||
|
+
|
||
|
+ lvreduce -f -l-4 $vg2/foo
|
||
|
+
|
||
|
+ lvchange -an $vg2/foo
|
||
|
+ lvremove $vg2/foo
|
||
|
+ done
|
||
|
+
|
||
|
+ vgremove -ff $vg2
|
||
|
+}
|
||
|
+
|
||
|
+test_vg_thread3()
|
||
|
+{
|
||
|
+ for i in {1..1000}
|
||
|
+ do
|
||
|
+ pvcreate -M2 "$dev7" "$dev8"
|
||
|
+ pvremove "$dev7"
|
||
|
+ pvremove "$dev8"
|
||
|
+ done
|
||
|
+}
|
||
|
+
|
||
|
+test_vg_thread1 &
|
||
|
+WAITPID=$!
|
||
|
+
|
||
|
+test_vg_thread2 &
|
||
|
+WAITPID="$WAITPID "$!
|
||
|
+
|
||
|
+test_vg_thread3 &
|
||
|
+WAITPID="$WAITPID "$!
|
||
|
+
|
||
|
+wait $WAITPID
|
||
|
--
|
||
|
1.8.3.1
|
||
|
|