xref: /aosp_15_r20/external/ublksrv/tests/generic/004 (revision 94c4a1e103eb1715230460aab379dff275992c20)
1#!/bin/bash
2# SPDX-License-Identifier: MIT or GPL-2.0-only
3
4. common/fio_common
5. common/loop_common
6
7echo -e "\trun fio with kill ubq_deamon and delete(NOWAIT) ublk-loop test"
8
9BS=4k
10RW=rw
11JOBS=4
12QUEUES=4
13RT=$TRUNTIME
14LOOPS=4
15URING_COMP=1
16NEED_GET_DATA=1
17RECOVERY=0
18RECOVERY_REISSUE=0
19
20
21ublk_run_delete_test()
22{
23	for CNT in `seq $LOOPS`; do
24		export T_TYPE_PARAMS="-t loop -q $QUEUES -u $URING_COMP -g $NEED_GET_DATA -r $RECOVERY -i $RECOVERY_REISSUE -f $file"
25
26		DEV=`__create_ublk_dev`
27		echo -e "\trun fio on $DEV(ublk add $T_TYPE_PARAMS) with deleting dev $CNT"
28		__run_fio_libaio $DEV $BS $RW $JOBS $RT > /dev/null 2 >& 1 &
29		sleep 2
30		queue_tid=`__ublk_get_queue_tid $DEV 0`
31		kill -9 $queue_tid
32		RES=`__remove_ublk_dev_return $DEV`
33		if [ $RES -ne 0 ]; then
34				echo -e "\tdelete $DEV failed"
35				ps -eLf | grep ublk
36				(cd /sys/kernel/debug/block/`basename $DEV` && find . -type f -exec grep -aH . {} \;)
37				break
38		fi
39		wait
40	done
41}
42
43file=`_create_loop_image "data" 1G`
44
45RECOVERY=1
46for RECOVERY_REISSUE in `seq 0 1`; do
47	ublk_run_delete_test
48done
49
50_remove_loop_image $file
51