On Tue, Jan 7, 2025 at 7:08 AM Li Zhijian <lizhijian@xxxxxxxxxxx> wrote: > > This test case has been in my possession for quite some time. > I am upstreaming it now because it has once again detected a regression in > a recent kernel release[0]. > > It's just stupid to connect and disconnect RNBD on localhost and expect > no dmesg exceptions, with some attempts actually succeeding. > > rnbd/002 (Start Stop RNBD repeatedly) [passed] > runtime 13.252s ... 13.099s > start/stop success ratio 100/100 ... 100/100 > > [0] https://lore.kernel.org/linux-rdma/20241223025700.292536-1-lizhijian@xxxxxxxxxxx/ > > Signed-off-by: Li Zhijian <lizhijian@xxxxxxxxxxx> Thx for the patch, LGTM Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxx> > --- > V4: > - Fix a typo and update the passed condition # Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > - rename test_start_stop() to test_start_stop_repeatedly() > > V3: > - Always stop the rnbd regardless of the result of start > > V2: > - address comments from Shinichiro > - minor fixes > > Copy to the RDMA/rtrs guys: > > Cc: Jack Wang <jinpu.wang@xxxxxxxxx> > Cc: Jason Gunthorpe <jgg@xxxxxxxx> > Cc: Leon Romanovsky <leon@xxxxxxxxxx> > Cc: "Md. Haris Iqbal" <haris.iqbal@xxxxxxxxx> > --- > tests/rnbd/002 | 47 ++++++++++++++++++++++++++++++++++++++++++++++ > tests/rnbd/002.out | 2 ++ > 2 files changed, 49 insertions(+) > create mode 100755 tests/rnbd/002 > create mode 100644 tests/rnbd/002.out > > diff --git a/tests/rnbd/002 b/tests/rnbd/002 > new file mode 100755 > index 000000000000..7d7da9401974 > --- /dev/null > +++ b/tests/rnbd/002 > @@ -0,0 +1,47 @@ > +#!/bin/bash > +# SPDX-License-Identifier: GPL-3.0+ > +# Copyright (c) 2024 FUJITSU LIMITED. All Rights Reserved. > +# > +# Commit 667db86bcbe8 ("RDMA/rtrs: Register ib event handler") introduced a > +# new element .deinit but never used it at all that lead to a > +# 'list_add corruption' kernel warning. > +# > +# This test is intended to check whether the current kernel is affected. > +# The following patch resolves this issue. > +# RDMA/rtrs: Add missing deinit() call > +# > +. tests/rnbd/rc > + > +DESCRIPTION="Start Stop RNBD repeatedly" > +CHECK_DMESG=1 > +QUICK=1 > + > +requires() { > + _have_rnbd > + _have_loop > +} > + > +test_start_stop_repeatedly() > +{ > + _setup_rnbd || return > + > + local loop_dev i j=0 > + loop_dev="$(losetup -f)" > + > + for ((i=0;i<100;i++)) > + do > + _start_rnbd_client "${loop_dev}" &>/dev/null > + # Always stop it so that the next start has change to work > + _stop_rnbd_client &>/dev/null && ((j++)) > + done > + > + TEST_RUN["start/stop success ratio"]="${j}/${i}" > + > + _cleanup_rnbd > +} > + > +test() { > + echo "Running ${TEST_NAME}" > + test_start_stop_repeatedly > + echo "Test complete" > +} > diff --git a/tests/rnbd/002.out b/tests/rnbd/002.out > new file mode 100644 > index 000000000000..2f055b8c82f9 > --- /dev/null > +++ b/tests/rnbd/002.out > @@ -0,0 +1,2 @@ > +Running rnbd/002 > +Test complete > -- > 2.47.0 >