* [PATCH blktests 1/7] check: move fallback device handling into _check_and_call_test_device()
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 2/7] check: call _unload_module() after fallback_device_cleanup() Shin'ichiro Kawasaki
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
Currently, when a test case has callback functions for fallback device,
the fallback device is created in run_test(). Meanwhile,
_unload_module() is called in _call_test(). Then,
cleanup_fallback_device() is called after _unload_module().
_run_test
fallback_device
_check_and_call_test_device
_call_test
_unload_modules
cleanup_fallback_device
This is not desired since module unload can affect
cleanup_fallback_device(). For example, scsi_debug is used as a fallback
device, _unload_modules() can unload scsi_debug before calling
cleanup_fallback_device().
To resolve this, make two changes. The first change is to move fallback
operations from _run_test() to _check_and_call_test_device(). This
commit does it. After this commit, the call chain will be as follows.
_run_test
_check_and_call_test_device
fallback_device
_call_test
_unload_modules
cleanup_fallback_device
As the second change, the following commit will move the
_unload_modules() call.
While at this change, rename the local variable FALLBACK_DEVICE to
'fallback', since capital letters imply that the variable would be
a global variable.
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
check | 57 ++++++++++++++++++++++++++++-----------------------------
1 file changed, 28 insertions(+), 29 deletions(-)
diff --git a/check b/check
index f170458..3fa3e97 100755
--- a/check
+++ b/check
@@ -716,14 +716,34 @@ _check_and_call_test() {
_check_and_call_test_device() {
local postfix
local unset_skip_reason
- local ret
+ local ret=0
+ local fallback=0
if declare -fF requires >/dev/null; then
requires
fi
+ if [[ ${#TEST_DEVS[@]} -eq 0 ]] && \
+ declare -fF fallback_device >/dev/null; then
+ TEST_DEVS[0]=fallback
+ fi
+
[[ -n $COND_DESC ]] && postfix=_${COND_DESC//[ =]/_}
for TEST_DEV in "${TEST_DEVS[@]}"; do
+ if [[ $TEST_DEV == fallback ]]; then
+ if ! TEST_DEV=$(fallback_device); then
+ _warning "$TEST_NAME: fallback_device call failure"
+ return 0
+ fi
+
+ if ! _find_sysfs_dirs "$TEST_DEV"; then
+ _warning "$TEST_NAME: could not find sysfs directory for ${TEST_DEV}"
+ cleanup_fallback_device
+ return 0
+ fi
+ fallback=1
+ fi
+
TEST_DEV_SYSFS="${TEST_DEV_SYSFS_DIRS["$TEST_DEV"]}"
TEST_DEV_PART_SYSFS="${TEST_DEV_PART_SYSFS_DIRS["$TEST_DEV"]}"
@@ -744,6 +764,13 @@ _check_and_call_test_device() {
if (( unset_skip_reason )); then
unset SKIP_REASONS
fi
+
+ if (( fallback )); then
+ cleanup_fallback_device
+ unset "TEST_DEV_SYSFS_DIRS[${TEST_DEV}]]"
+ unset "TEST_DEV_PART_SYSFS_DIRS[${TEST_DEV}]"
+ TEST_DEVS=()
+ fi
done
return $ret
@@ -825,7 +852,6 @@ _run_test() {
DMESG_FILTER="cat"
RUN_FOR_ZONED=0
COND_DESC=""
- FALLBACK_DEVICE=0
MODULES_TO_UNLOAD=()
local nr_conds cond_i
@@ -855,26 +881,6 @@ _run_test() {
ret=$?
fi
elif declare -fF test_device >/dev/null; then
- if [[ ${#TEST_DEVS[@]} -eq 0 ]] && \
- declare -fF fallback_device >/dev/null; then
- if ! test_dev=$(fallback_device); then
- _warning "$TEST_NAME: fallback_device call failure"
- return 0
- fi
-
- if ! _find_sysfs_dirs "$test_dev"; then
- _warning "$TEST_NAME: could not find sysfs directory for ${test_dev}"
- cleanup_fallback_device
- return 0
- fi
- TEST_DEVS=( "${test_dev}" )
- FALLBACK_DEVICE=1
- fi
-
- if [[ ${#TEST_DEVS[@]} -eq 0 ]]; then
- return 0
- fi
-
if declare -fF set_conditions >/dev/null; then
nr_conds=$(set_conditions)
for ((cond_i = 0; cond_i < nr_conds; cond_i++)); do
@@ -887,13 +893,6 @@ _run_test() {
_check_and_call_test_device
ret=$?
fi
-
- if (( FALLBACK_DEVICE )); then
- cleanup_fallback_device
- unset "TEST_DEV_SYSFS_DIRS[${TEST_DEVS[0]}]"
- unset "TEST_DEV_PART_SYSFS_DIRS[${TEST_DEVS[0]}]"
- TEST_DEVS=()
- fi
else
_check_and_call_test_device_array
ret=$?
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH blktests 2/7] check: call _unload_module() after fallback_device_cleanup()
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 1/7] check: move fallback device handling into _check_and_call_test_device() Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 3/7] check: do not create fallback device when other requirements are not met Shin'ichiro Kawasaki
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
As described in the commit message of the previous commit,
_unload_module() is called before calling cleanup_fallback_device().
Then, modules that is not cleaned up can be unloaded by _unload_module()
and can cause unload failures.
To avoid the failures, move _unload_module() call into
_check_and_call_test_device() so that it is called after the
cleanup_fallback_device() call. After this change, the call chain
becomes as follows:
_run_test
_check_and_call_test_device
fallback_device
_call_test
cleanup_fallback_device
_unload_modules
This change requires to add _unload_modules() call to
_check_and_call_test() and _check_and_call_test_device_array() also.
Fixes: 756d18d5fef0 ("check: call _unload_modules for each test run")
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
check | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/check b/check
index 3fa3e97..91064d7 100755
--- a/check
+++ b/check
@@ -417,7 +417,7 @@ _cleanup() {
_exit_cgroup2
}
-__call_test() {
+_call_test() {
local test_func="$1"
local seqres="${RESULTS_DIR}/${TEST_NAME}"
# shellcheck disable=SC2034
@@ -537,17 +537,6 @@ __call_test() {
fi
}
-_call_test() {
- local ret
-
- __call_test "$@"
- ret=$?
-
- _unload_modules
-
- return $ret
-}
-
_test_dev_is_zoned() {
[[ -e "${TEST_DEV_SYSFS}/queue/zoned" &&
$(cat "${TEST_DEV_SYSFS}/queue/zoned") != none ]]
@@ -711,6 +700,7 @@ _check_and_call_test() {
[[ -n $COND_DESC ]] && postfix=_${COND_DESC//[ =]/_}
RESULTS_DIR="$OUTPUT/nodev${postfix}"
_call_test test
+ _unload_modules
}
_check_and_call_test_device() {
@@ -771,6 +761,8 @@ _check_and_call_test_device() {
unset "TEST_DEV_PART_SYSFS_DIRS[${TEST_DEV}]"
TEST_DEVS=()
fi
+
+ _unload_modules
done
return $ret
@@ -842,6 +834,7 @@ _check_and_call_test_device_array() {
unset "TEST_DEV_ARRAY_SYSFS_DIRS[${devs[i]}]"
done
+ _unload_modules
return $ret
}
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH blktests 3/7] check: do not create fallback device when other requirements are not met
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 1/7] check: move fallback device handling into _check_and_call_test_device() Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 2/7] check: call _unload_module() after fallback_device_cleanup() Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 4/7] check: call fallback_device() in the same bash context Shin'ichiro Kawasaki
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
Currently, fallback devices are prepared regardless of whether other
requirements are fulfilled. This is not always desired. For example,
when users already created scsi_debug devices, it is not good to create
a fallback scsi_debug device, because it unloads scsi_debug module and
remove the scsi_debug devices users created. To prevent such scenario,
confirm requirements by checking skip reasons before creating fallback
devices.
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
check | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/check b/check
index 91064d7..fdc7ba7 100755
--- a/check
+++ b/check
@@ -721,6 +721,11 @@ _check_and_call_test_device() {
[[ -n $COND_DESC ]] && postfix=_${COND_DESC//[ =]/_}
for TEST_DEV in "${TEST_DEVS[@]}"; do
if [[ $TEST_DEV == fallback ]]; then
+ if [[ -v SKIP_REASONS ]]; then
+ _output_notrun "$TEST_NAME"
+ return 0
+ fi
+
if ! TEST_DEV=$(fallback_device); then
_warning "$TEST_NAME: fallback_device call failure"
return 0
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH blktests 4/7] check: call fallback_device() in the same bash context
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
` (2 preceding siblings ...)
2026-03-24 5:49 ` [PATCH blktests 3/7] check: do not create fallback device when other requirements are not met Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 5/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
Currently, the callback function fallback_device() is called with bash
$() feature. This runs the function call in a new bash context. Then,
global variable changes in the function call are not reflected in the
caller context. This is not handy and does not allow checking
MODULES_TO_UNLOAD status change in the caller, which will be added in
the following commit.
To share the same bash context between the caller and the callee of
fallback_device(), do not use $(). Instead, use a temporary file to keep
the output of fallback_device().
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
check | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/check b/check
index fdc7ba7..00213cb 100755
--- a/check
+++ b/check
@@ -708,6 +708,7 @@ _check_and_call_test_device() {
local unset_skip_reason
local ret=0
local fallback=0
+ local fb_dev_file
if declare -fF requires >/dev/null; then
requires
@@ -726,10 +727,14 @@ _check_and_call_test_device() {
return 0
fi
- if ! TEST_DEV=$(fallback_device); then
+ # Use a tmp file to keep bash context in fallback_device
+ fb_dev_file="${OUTPUT}/${TEST_NAME/\//_}_fallback_dev"
+ if ! fallback_device > "$fb_dev_file"; then
_warning "$TEST_NAME: fallback_device call failure"
return 0
fi
+ TEST_DEV=$(<"$fb_dev_file")
+ rm -f "$fb_dev_file"
if ! _find_sysfs_dirs "$TEST_DEV"; then
_warning "$TEST_NAME: could not find sysfs directory for ${TEST_DEV}"
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH blktests 5/7] Skip tests if scsi_debug module is already loaded and in use
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
` (3 preceding siblings ...)
2026-03-24 5:49 ` [PATCH blktests 4/7] check: call fallback_device() in the same bash context Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 6/7] common/scsi_debug: ensure scsi_debug is loadable before loading it Shin'ichiro Kawasaki
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
From: Disha Goel <disgoel@linux.ibm.com>
Several tests across block/, scsi/, dm/, md/, zbd/, nvme/ require
exclusive access to the scsi_debug module because they load, unload
or reconfigure it. When scsi_debug is loadable and already loaded
by the environment (e.g., by another driver or a previous setup),
these tests fail with:
modprobe: FATAL: Module scsi_debug is in use.
Unloading scsi_debug failed
scsi_debug 327680 4
To prevent these failures, this patch introduces a new helper function
_have_loadable_scsi_debug(). It verifies if the module is already loaded
by checking the ${MODULES_TO_UNLOAD[*]} array. If the module exists but
is not in the array, it indicates the module was loaded before the test
started, and the test is skipped.
Additionally, for cases where scsi_debug is built-in, the environment may
have already created additional hosts. To prevent the tests from disrupting
these hosts, _have_scsi_debug() now checks the add_host attribute. If the
number of hosts is greater than 1, the test is skipped.
Link: https://github.com/linux-blktests/blktests/pull/218
Signed-off-by: Disha Goel <disgoel@linux.ibm.com>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
common/scsi_debug | 29 +++++++++++++++++++++++++----
tests/block/009 | 2 +-
tests/block/025 | 2 +-
tests/block/028 | 2 +-
tests/block/032 | 2 +-
tests/loop/004 | 2 +-
tests/md/002 | 2 +-
tests/scsi/007 | 2 +-
tests/scsi/009 | 2 +-
tests/srp/rc | 2 +-
tests/zbd/008 | 2 +-
tests/zbd/009 | 2 +-
tests/zbd/010 | 2 +-
13 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/common/scsi_debug b/common/scsi_debug
index 8964558..97a65c2 100644
--- a/common/scsi_debug
+++ b/common/scsi_debug
@@ -4,13 +4,34 @@
#
# scsi_debug helper functions.
-_have_scsi_debug() {
- _have_driver scsi_debug
-}
-
SD_PARAM_PATH=/sys/module/scsi_debug/parameters
SD_PSEUDO_PATH=/sys/bus/pseudo/drivers/scsi_debug
+_have_scsi_debug() {
+ _have_driver scsi_debug
+
+ if _module_file_exists scsi_debug; then
+ _have_loadable_scsi_debug
+ return $?
+ fi
+
+ if [[ -e "$SD_PSEUDO_PATH/add_host" ]] && \
+ [[ $(cat "$SD_PSEUDO_PATH/add_host") -gt 1 ]]; then
+ SKIP_REASONS+=("scsi_debug already has multiple hosts configured")
+ return 1
+ fi
+}
+
+_have_loadable_scsi_debug() {
+ _have_module scsi_debug || return 1
+
+ if [[ -d /sys/module/scsi_debug ]] && \
+ [[ ! ${MODULES_TO_UNLOAD[*]} =~ scsi_debug ]]; then
+ SKIP_REASONS+=("scsi_debug is already loaded before test")
+ return 1
+ fi
+}
+
_scsi_debug_key_path() {
local key=${1}
diff --git a/tests/block/009 b/tests/block/009
index 7256afc..8995646 100755
--- a/tests/block/009
+++ b/tests/block/009
@@ -12,7 +12,7 @@
DESCRIPTION="check page-cache coherency after BLKDISCARD"
requires() {
- _have_module scsi_debug
+ _have_loadable_scsi_debug
_have_program xfs_io
}
diff --git a/tests/block/025 b/tests/block/025
index 4c48e9f..6582fa3 100755
--- a/tests/block/025
+++ b/tests/block/025
@@ -12,7 +12,7 @@
DESCRIPTION="do a huge discard with 4k sector size"
requires() {
- _have_module scsi_debug
+ _have_loadable_scsi_debug
}
test() {
diff --git a/tests/block/028 b/tests/block/028
index 13b3278..c03ad6c 100755
--- a/tests/block/028
+++ b/tests/block/028
@@ -12,7 +12,7 @@ DESCRIPTION="do I/O on scsi_debug with DIF/DIX enabled"
DMESG_FILTER="sed -r 's/(guard tag error at sector|ref tag error at location)/blktests failure: \\1/'"
requires() {
- _have_module scsi_debug
+ _have_loadable_scsi_debug
}
test_pi() {
diff --git a/tests/block/032 b/tests/block/032
index 5e25d0b..7f89a15 100755
--- a/tests/block/032
+++ b/tests/block/032
@@ -14,7 +14,7 @@ QUICK=1
requires() {
_have_xfs
- _have_module scsi_debug
+ _have_loadable_scsi_debug
}
test() {
diff --git a/tests/loop/004 b/tests/loop/004
index ca52d80..fc7e4b0 100755
--- a/tests/loop/004
+++ b/tests/loop/004
@@ -12,7 +12,7 @@ QUICK=1
requires() {
_have_program xfs_io
- _have_module scsi_debug
+ _have_loadable_scsi_debug
_have_src_program loblksize
_have_loop_set_block_size
}
diff --git a/tests/md/002 b/tests/md/002
index 1349a18..e1da8b6 100755
--- a/tests/md/002
+++ b/tests/md/002
@@ -12,7 +12,7 @@ DESCRIPTION="test md atomic writes"
QUICK=1
requires() {
- _have_driver scsi_debug
+ _have_scsi_debug
_stacked_atomic_test_requires
}
diff --git a/tests/scsi/007 b/tests/scsi/007
index a638e20..8a8d4ea 100755
--- a/tests/scsi/007
+++ b/tests/scsi/007
@@ -12,7 +12,7 @@ DESCRIPTION="Trigger the SCSI error handler"
QUICK=1
requires() {
- _have_module scsi_debug
+ _have_loadable_scsi_debug
}
start_tracing() {
diff --git a/tests/scsi/009 b/tests/scsi/009
index 8860e1c..41a5152 100755
--- a/tests/scsi/009
+++ b/tests/scsi/009
@@ -12,7 +12,7 @@ DESCRIPTION="test scsi atomic writes"
QUICK=1
requires() {
- _have_driver scsi_debug
+ _have_scsi_debug
_have_xfs_io_atomic_write
}
diff --git a/tests/srp/rc b/tests/srp/rc
index 8585272..03fe55a 100755
--- a/tests/srp/rc
+++ b/tests/srp/rc
@@ -58,7 +58,7 @@ group_requires() {
_have_kver 5 5
_have_iproute2 190404
fi
- _have_module scsi_debug
+ _have_loadable_scsi_debug
_have_module target_core_iblock
_have_module target_core_mod
_module_not_in_use scsi_transport_srp
diff --git a/tests/zbd/008 b/tests/zbd/008
index 55b5b6c..cdfbedf 100755
--- a/tests/zbd/008
+++ b/tests/zbd/008
@@ -13,7 +13,7 @@ DESCRIPTION="check no stale page cache after BLKZONERESET and data read race"
TIMED=1
requires() {
- _have_module scsi_debug
+ _have_loadable_scsi_debug
_have_module_param scsi_debug zbc
_have_program xfs_io
}
diff --git a/tests/zbd/009 b/tests/zbd/009
index b268483..a36ad71 100755
--- a/tests/zbd/009
+++ b/tests/zbd/009
@@ -36,7 +36,7 @@ requires() {
_have_driver btrfs
_have_module_param scsi_debug zone_cap_mb
_have_program mkfs.btrfs && have_good_mkfs_btrfs
- _have_module scsi_debug
+ _have_loadable_scsi_debug
}
test() {
diff --git a/tests/zbd/010 b/tests/zbd/010
index c5cb76a..cb7202c 100755
--- a/tests/zbd/010
+++ b/tests/zbd/010
@@ -15,7 +15,7 @@ requires() {
_have_module null_blk
_have_module_param scsi_debug zone_cap_mb
_have_program mkfs.f2fs
- _have_module scsi_debug
+ _have_loadable_scsi_debug
}
test() {
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH blktests 6/7] common/scsi_debug: ensure scsi_debug is loadable before loading it
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
` (4 preceding siblings ...)
2026-03-24 5:49 ` [PATCH blktests 5/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-03-24 5:49 ` [PATCH blktests 7/7] zbd/012: add missing scsi_debug check Shin'ichiro Kawasaki
2026-04-04 8:06 ` [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shinichiro Kawasaki
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
Currently, _have_scsi_debug_group_number_stats() assumes that scsi_debug
is loadable. This does not work when scsi_debug is built-in. Before
loading scsi_debug in the function, ensure that scsi_debug is loadable.
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
common/scsi_debug | 2 ++
1 file changed, 2 insertions(+)
diff --git a/common/scsi_debug b/common/scsi_debug
index 97a65c2..6aa7420 100644
--- a/common/scsi_debug
+++ b/common/scsi_debug
@@ -49,6 +49,8 @@ _scsi_debug_key_path() {
_have_scsi_debug_group_number_stats() {
local ret=0
+ _have_loadable_scsi_debug || return 1
+
modprobe -qr scsi_debug >&/dev/null
modprobe -q scsi_debug delay=0 >&/dev/null
if ! [[ -e ${SD_PSEUDO_PATH}/group_number_stats ]]; then
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH blktests 7/7] zbd/012: add missing scsi_debug check
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
` (5 preceding siblings ...)
2026-03-24 5:49 ` [PATCH blktests 6/7] common/scsi_debug: ensure scsi_debug is loadable before loading it Shin'ichiro Kawasaki
@ 2026-03-24 5:49 ` Shin'ichiro Kawasaki
2026-04-04 8:06 ` [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shinichiro Kawasaki
7 siblings, 0 replies; 9+ messages in thread
From: Shin'ichiro Kawasaki @ 2026-03-24 5:49 UTC (permalink / raw)
To: linux-block; +Cc: Shin'ichiro Kawasaki
The test case uses loadable scsi_debug, but it misses the check for it.
Add the missing check.
Fixes: 3ca2657f94b8 ("zbd/012: Test requeuing of zoned writes and queue freezing")
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
tests/zbd/012 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/zbd/012 b/tests/zbd/012
index b2bda5c..c2e47f3 100755
--- a/tests/zbd/012
+++ b/tests/zbd/012
@@ -13,6 +13,7 @@ TIMED=1
requires() {
_have_fio_zbd_zonemode
+ _have_loadable_scsi_debug
}
toggle_iosched() {
--
2.49.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use
2026-03-24 5:49 [PATCH blktests 0/7] Skip tests if scsi_debug module is already loaded and in use Shin'ichiro Kawasaki
` (6 preceding siblings ...)
2026-03-24 5:49 ` [PATCH blktests 7/7] zbd/012: add missing scsi_debug check Shin'ichiro Kawasaki
@ 2026-04-04 8:06 ` Shinichiro Kawasaki
7 siblings, 0 replies; 9+ messages in thread
From: Shinichiro Kawasaki @ 2026-04-04 8:06 UTC (permalink / raw)
To: linux-block@vger.kernel.org; +Cc: disgoel@linux.ibm.com
On Mar 24, 2026 / 14:49, Shin'ichiro Kawasaki wrote:
> When blktests users have scsi_debug devices configured for purposes other than
> blktests, running blktests currently unloads scsi_debug unconditionally and
> breaks the existing setup. To avoid disrupting such configurations, this patch
> series improves blktests to check whether the scsi_debug module is already
> loaded and in use, and to skip test cases that require scsi_debug in that
> situation.
>
> This series was originally proposed as a GitHub Pull Request [1]. Disha Goel and
> I worked on the patches. The first four patches fix pre-existing problems found
> while working on this series. The fifth patch implements the improvement
> described above. The last two patches fix two additional problems that were
> found during this work.
FYI, I applied this series.
^ permalink raw reply [flat|nested] 9+ messages in thread