xref: /aosp_15_r20/external/ublksrv/tests/generic/002 (revision 94c4a1e103eb1715230460aab379dff275992c20)
1#!/bin/bash
2# SPDX-License-Identifier: MIT or GPL-2.0-only
3
4. common/fio_common
5
6echo -e "\trun fio with kill ubq_deamon"
7
8BS=4k
9RW=rw
10JOBS=4
11QUEUES=2
12RT=$TRUNTIME
13LOOPS=4
14URING_COMP=1
15NEED_GET_DATA=1
16
17ublk_run_abort_test()
18{
19	for CNT in `seq $LOOPS`; do
20		export T_TYPE_PARAMS="-t null -q $QUEUES -u $URING_COMP -g $NEED_GET_DATA"
21		DEV=`__create_ublk_dev`
22		echo -e "\trun fio with killing $DEV(ublk add $T_TYPE_PARAMS) queue daemon $CNT"
23		__run_fio_libaio $DEV $BS $RW $JOBS $RT > /dev/null 2 >& 1 &
24		sleep 2
25		queue_tid=`__ublk_get_queue_tid $DEV 0`
26		kill -9 $queue_tid
27		sleep 2
28		secs=0
29		while [ $secs -lt 30 ]; do
30			state=`__ublk_get_dev_state $DEV`
31			[ "$state" == "DEAD" ] && break
32			sleep 1
33			let secs++
34		done
35		[ "$state" != "DEAD" ] && echo "device isn't dead after killing queue daemon" && exit -1
36		RES=`__remove_ublk_dev_return $DEV`
37		if [ $RES -ne 0 ]; then
38				echo -e "\tdelete $DEV failed"
39				exit -1
40		fi
41		wait
42	done
43}
44
45for NEED_GET_DATA in `seq 0 1`; do
46	ublk_run_abort_test
47done
48