[PATCH] block/035: add test to cover blk-cgroup vs. disk rebind

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Recently it is observed that list corruption is triggered when running
scsi disk rebind in case of blk-cgroup.

Add one such test case for covering this unusual operation.

Cc: Changhui Zhong <czhong@xxxxxxxxxx>
Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>
---
 tests/block/035     | 54 +++++++++++++++++++++++++++++++++++++++++++++
 tests/block/035.out |  2 ++
 2 files changed, 56 insertions(+)
 create mode 100755 tests/block/035
 create mode 100644 tests/block/035.out

diff --git a/tests/block/035 b/tests/block/035
new file mode 100755
index 0000000..a1057a3
--- /dev/null
+++ b/tests/block/035
@@ -0,0 +1,54 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0+
+# Copyright (C) 2024 Ming Lei
+#
+# blk-cgroup is usually initialized in disk allocation code, and
+# de-initialized in disk release code. And scsi disk rebind needs
+# to re-allocate/re-add disk, meantime request queue is kept as
+# live during the whole cycle.
+#
+# Add this test for covering blk-cgroup & disk rebind.
+
+. tests/block/rc
+. common/scsi_debug
+. common/cgroup
+
+DESCRIPTION="test cgroup vs. scsi_debug rebind"
+QUICK=1
+
+requires() {
+	_have_cgroup2_controller io
+	_have_scsi_debug
+	_have_fio
+}
+
+scsi_debug_rebind() {
+	if ! _configure_scsi_debug; then
+		return
+	fi
+
+	_init_cgroup2
+
+	echo "+io" > "/sys/fs/cgroup/cgroup.subtree_control"
+	echo "+io" > "$CGROUP2_DIR/cgroup.subtree_control"
+	mkdir -p "$CGROUP2_DIR/${TEST_NAME}"
+
+	local dev dev_path hctl
+	dev=${SCSI_DEBUG_DEVICES[0]}
+	dev_path="$(realpath "/sys/block/${dev}/device")"
+	hctl="$(basename "$dev_path")"
+
+	echo -n "${hctl}" > "/sys/bus/scsi/drivers/sd/unbind"
+	echo -n "${hctl}" > "/sys/bus/scsi/drivers/sd/bind"
+
+	_exit_cgroup2
+	_exit_scsi_debug
+}
+
+test() {
+	echo "Running ${TEST_NAME}"
+
+	scsi_debug_rebind
+
+	echo "Test complete"
+}
diff --git a/tests/block/035.out b/tests/block/035.out
new file mode 100644
index 0000000..6ffa504
--- /dev/null
+++ b/tests/block/035.out
@@ -0,0 +1,2 @@
+Running block/035
+Test complete
-- 
2.41.0





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux