1*94c4a1e1SFrank Piva#!/bin/bash 2*94c4a1e1SFrank Piva# SPDX-License-Identifier: MIT or GPL-2.0-only 3*94c4a1e1SFrank Piva 4*94c4a1e1SFrank Piva. common/fio_common 5*94c4a1e1SFrank Piva. common/loop_common 6*94c4a1e1SFrank Piva 7*94c4a1e1SFrank Pivaecho -e "\trun fio with delete ublk-loop test" 8*94c4a1e1SFrank Piva 9*94c4a1e1SFrank PivaBS=4k 10*94c4a1e1SFrank PivaRW=rw 11*94c4a1e1SFrank PivaJOBS=4 12*94c4a1e1SFrank PivaQUEUES=4 13*94c4a1e1SFrank PivaRT=$TRUNTIME 14*94c4a1e1SFrank PivaLOOPS=4 15*94c4a1e1SFrank PivaURING_COMP=1 16*94c4a1e1SFrank PivaNEED_GET_DATA=1 17*94c4a1e1SFrank Piva 18*94c4a1e1SFrank Pivaublk_run_delete_test() 19*94c4a1e1SFrank Piva{ 20*94c4a1e1SFrank Piva for CNT in `seq $LOOPS`; do 21*94c4a1e1SFrank Piva export T_TYPE_PARAMS="-t loop -q $QUEUES -u $URING_COMP -g $NEED_GET_DATA -f $file" 22*94c4a1e1SFrank Piva 23*94c4a1e1SFrank Piva DEV=`__create_ublk_dev` 24*94c4a1e1SFrank Piva echo -e "\trun fio on $DEV(ublk add $T_TYPE_PARAMS) with deleting dev $CNT" 25*94c4a1e1SFrank Piva __run_fio_libaio $DEV $BS $RW $JOBS $RT > /dev/null 2 >& 1 & 26*94c4a1e1SFrank Piva sleep 4 27*94c4a1e1SFrank Piva RES=`__remove_ublk_dev_return $DEV` 28*94c4a1e1SFrank Piva if [ $RES -ne 0 ]; then 29*94c4a1e1SFrank Piva echo -e "\tdelete $DEV failed" 30*94c4a1e1SFrank Piva ps -eLf | grep ublk 31*94c4a1e1SFrank Piva (cd /sys/kernel/debug/block/`basename $DEV` && find . -type f -exec grep -aH . {} \;) 32*94c4a1e1SFrank Piva break 33*94c4a1e1SFrank Piva fi 34*94c4a1e1SFrank Piva wait 35*94c4a1e1SFrank Piva done 36*94c4a1e1SFrank Piva} 37*94c4a1e1SFrank Piva 38*94c4a1e1SFrank Pivafile=`_create_loop_image "data" 1G` 39*94c4a1e1SFrank Piva 40*94c4a1e1SFrank Pivafor NEED_GET_DATA in `seq 0 1`; do 41*94c4a1e1SFrank Piva ublk_run_delete_test 42*94c4a1e1SFrank Pivadone 43*94c4a1e1SFrank Piva 44*94c4a1e1SFrank Piva_remove_loop_image $file 45