On 05/02/25 8:34 pm, Nilay Shroff wrote:
The srp/* tests requires exclusive access to scsi_transport_srp
module. Running srp/* tests would definitely fail if the test can't
get exclusive access of scsi_transport_srp module as shown below:
$ lsmod | grep scsi_transport_srp
scsi_transport_srp 327680 1 ibmvscsi
$ ./check srp/001
srp/001 (Create and remove LUNs) [failed]
runtime ... 0.249s
tests/srp/rc: line 263: /sys/class/srp_remote_ports/port-0:1/delete: Permission denied
tests/srp/rc: line 263: /sys/class/srp_remote_ports/port-0:1/delete: Permission denied
modprobe: FATAL: Module scsi_transport_srp is in use.
error: Invalid argument
error: Invalid argument
So if the scsi_transport_srp module is loaded and in use then skip
running srp/* tests.
Signed-off-by: Nilay Shroff <nilay@xxxxxxxxxxxxx>
I have tested the patch on PowerPC machine, it works fine.
Tested-by: Disha Goel<disgoel@xxxxxxxxxxxxx>
---
Changes from v1:
- Fix formatting, replace white spaces with tabs (Shinichiro Kawasaki)
- Rename _have_module_not_in_use to _module_not_in_use (Bart Van Assche)
---
common/rc | 13 +++++++++++++
tests/srp/rc | 1 +
2 files changed, 14 insertions(+)
diff --git a/common/rc b/common/rc
index bcb215d..20579b0 100644
--- a/common/rc
+++ b/common/rc
@@ -78,6 +78,19 @@ _have_module() {
return 0
}
+_module_not_in_use() {
+ local refcnt
+
+ _have_module "$1" || return
+
+ if [ -d "/sys/module/$1" ]; then
+ refcnt="$(cat /sys/module/$1/refcnt)"
+ if [ "$refcnt" -ne "0" ]; then
+ SKIP_REASONS+=("module $1 is in use")
+ fi
+ fi
+}
+
_have_module_param() {
_have_driver "$1" || return
diff --git a/tests/srp/rc b/tests/srp/rc
index 85bd1dd..47b9546 100755
--- a/tests/srp/rc
+++ b/tests/srp/rc
@@ -61,6 +61,7 @@ group_requires() {
_have_module scsi_debug
_have_module target_core_iblock
_have_module target_core_mod
+ _module_not_in_use scsi_transport_srp
for p in mkfs.ext4 mkfs.xfs multipath multipathd pidof rdma \
sg_reset fio; do