Message ID | 20211024124258.26887-1-yi.zhang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [blktests,V3] tests/srp: fix module loading issue during srp tests | expand |
On 10/24/21 05:42, Yi Zhang wrote: > The ib_isert/ib_srpt modules will be automatically loaded after the first > time rdma_rxe/siw setup, which will lead srp tests fail. > > $ modprobe rdma_rxe > $ echo eno1 >/sys/module/rdma_rxe/parameters/add > $ lsmod | grep -E "ib_srpt|iscsi_target_mod|ib_isert" > ib_srpt 167936 0 > ib_isert 139264 0 > iscsi_target_mod 843776 1 ib_isert > target_core_mod 1069056 3 iscsi_target_mod,ib_srpt,ib_isert > rdma_cm 315392 5 rpcrdma,ib_srpt,ib_iser,ib_isert,rdma_ucm > ib_cm 344064 2 rdma_cm,ib_srpt > ib_core 1101824 10 rdma_cm,rdma_rxe,rpcrdma,ib_srpt,iw_cm,ib_iser,ib_isert,rdma_ucm,ib_uverbs,ib_cm > > $ ./check srp/001 > srp/001 (Create and remove LUNs) [failed] > runtime ... 3.675s > --- tests/srp/001.out 2021-10-13 01:18:50.846740093 -0400 > +++ /root/blktests/results/nodev/srp/001.out.bad 2021-10-14 03:24:18.593852208 -0400 > @@ -1,3 +1 @@ > -Configured SRP target driver > -count_luns(): 3 <> 3 > -Passed > +insmod: ERROR: could not insert module /lib/modules/5.15.0-rc5.fix+/kernel/drivers/infiniband/ulp/srpt/ib_srpt.ko: File exists > modprobe: FATAL: Module iscsi_target_mod is in use. > > Signed-off-by: Yi Zhang <yi.zhang@redhat.com> > --- > tests/srp/rc | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tests/srp/rc b/tests/srp/rc > index 7239d87..b3dfd4d 100755 > --- a/tests/srp/rc > +++ b/tests/srp/rc > @@ -497,7 +497,7 @@ start_lio_srpt() { > if modinfo ib_srpt | grep -q '^parm:[[:blank:]]*rdma_cm_port:'; then > opts+=("rdma_cm_port=${srp_rdma_cm_port}") > fi > - insmod "/lib/modules/$(uname -r)/kernel/drivers/infiniband/ulp/srpt/ib_srpt."* "${opts[@]}" || return $? > + unload_module ib_srpt && modprobe ib_srpt "${opts[@]}" || return $? > i=0 The "&&" above seems wrong to me. It is not guaranteed that the ib_srpt kernel mode has already been loaded before this code runs. I propose to use the following code instead: unload_module ib_srpt modprobe ib_srpt "${opts[@]}" || return $? Thanks, Bart.
On Mon, Oct 25, 2021 at 5:22 AM Bart Van Assche <bvanassche@acm.org> wrote: > > On 10/24/21 05:42, Yi Zhang wrote: > > The ib_isert/ib_srpt modules will be automatically loaded after the first > > time rdma_rxe/siw setup, which will lead srp tests fail. > > > > $ modprobe rdma_rxe > > $ echo eno1 >/sys/module/rdma_rxe/parameters/add > > $ lsmod | grep -E "ib_srpt|iscsi_target_mod|ib_isert" > > ib_srpt 167936 0 > > ib_isert 139264 0 > > iscsi_target_mod 843776 1 ib_isert > > target_core_mod 1069056 3 iscsi_target_mod,ib_srpt,ib_isert > > rdma_cm 315392 5 rpcrdma,ib_srpt,ib_iser,ib_isert,rdma_ucm > > ib_cm 344064 2 rdma_cm,ib_srpt > > ib_core 1101824 10 rdma_cm,rdma_rxe,rpcrdma,ib_srpt,iw_cm,ib_iser,ib_isert,rdma_ucm,ib_uverbs,ib_cm > > > > $ ./check srp/001 > > srp/001 (Create and remove LUNs) [failed] > > runtime ... 3.675s > > --- tests/srp/001.out 2021-10-13 01:18:50.846740093 -0400 > > +++ /root/blktests/results/nodev/srp/001.out.bad 2021-10-14 03:24:18.593852208 -0400 > > @@ -1,3 +1 @@ > > -Configured SRP target driver > > -count_luns(): 3 <> 3 > > -Passed > > +insmod: ERROR: could not insert module /lib/modules/5.15.0-rc5.fix+/kernel/drivers/infiniband/ulp/srpt/ib_srpt.ko: File exists > > modprobe: FATAL: Module iscsi_target_mod is in use. > > > > Signed-off-by: Yi Zhang <yi.zhang@redhat.com> > > --- > > tests/srp/rc | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/tests/srp/rc b/tests/srp/rc > > index 7239d87..b3dfd4d 100755 > > --- a/tests/srp/rc > > +++ b/tests/srp/rc > > @@ -497,7 +497,7 @@ start_lio_srpt() { > > if modinfo ib_srpt | grep -q '^parm:[[:blank:]]*rdma_cm_port:'; then > > opts+=("rdma_cm_port=${srp_rdma_cm_port}") > > fi > > - insmod "/lib/modules/$(uname -r)/kernel/drivers/infiniband/ulp/srpt/ib_srpt."* "${opts[@]}" || return $? > > + unload_module ib_srpt && modprobe ib_srpt "${opts[@]}" || return $? > > i=0 > > The "&&" above seems wrong to me. It is not guaranteed that the ib_srpt > kernel mode has already been loaded before this code runs. I propose to > use the following code instead: > > unload_module ib_srpt > modprobe ib_srpt "${opts[@]}" || return $? Thanks Bart, send v4 for this change. > > Thanks, > > Bart. >
diff --git a/tests/srp/rc b/tests/srp/rc index 7239d87..b3dfd4d 100755 --- a/tests/srp/rc +++ b/tests/srp/rc @@ -497,7 +497,7 @@ start_lio_srpt() { if modinfo ib_srpt | grep -q '^parm:[[:blank:]]*rdma_cm_port:'; then opts+=("rdma_cm_port=${srp_rdma_cm_port}") fi - insmod "/lib/modules/$(uname -r)/kernel/drivers/infiniband/ulp/srpt/ib_srpt."* "${opts[@]}" || return $? + unload_module ib_srpt && modprobe ib_srpt "${opts[@]}" || return $? i=0 for r in "${vdev_path[@]}"; do if [ -b "$(readlink -f "$r")" ]; then @@ -554,7 +554,7 @@ stop_lio_srpt() { rmdir /sys/kernel/config/target/*/* >&/dev/null rmdir /sys/kernel/config/target/* >&/dev/null - for m in ib_srpt iscsi_target_mod target_core_pscsi target_core_iblock \ + for m in ib_srpt ib_isert iscsi_target_mod target_core_pscsi target_core_iblock \ target_core_file target_core_stgt target_core_user \ target_core_mod do
The ib_isert/ib_srpt modules will be automatically loaded after the first time rdma_rxe/siw setup, which will lead srp tests fail. $ modprobe rdma_rxe $ echo eno1 >/sys/module/rdma_rxe/parameters/add $ lsmod | grep -E "ib_srpt|iscsi_target_mod|ib_isert" ib_srpt 167936 0 ib_isert 139264 0 iscsi_target_mod 843776 1 ib_isert target_core_mod 1069056 3 iscsi_target_mod,ib_srpt,ib_isert rdma_cm 315392 5 rpcrdma,ib_srpt,ib_iser,ib_isert,rdma_ucm ib_cm 344064 2 rdma_cm,ib_srpt ib_core 1101824 10 rdma_cm,rdma_rxe,rpcrdma,ib_srpt,iw_cm,ib_iser,ib_isert,rdma_ucm,ib_uverbs,ib_cm $ ./check srp/001 srp/001 (Create and remove LUNs) [failed] runtime ... 3.675s --- tests/srp/001.out 2021-10-13 01:18:50.846740093 -0400 +++ /root/blktests/results/nodev/srp/001.out.bad 2021-10-14 03:24:18.593852208 -0400 @@ -1,3 +1 @@ -Configured SRP target driver -count_luns(): 3 <> 3 -Passed +insmod: ERROR: could not insert module /lib/modules/5.15.0-rc5.fix+/kernel/drivers/infiniband/ulp/srpt/ib_srpt.ko: File exists modprobe: FATAL: Module iscsi_target_mod is in use. Signed-off-by: Yi Zhang <yi.zhang@redhat.com> --- tests/srp/rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)