xref: /aosp_15_r20/external/ublksrv/tests/generic/002 (revision 94c4a1e103eb1715230460aab379dff275992c20)
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
6*94c4a1e1SFrank Pivaecho -e "\trun fio with kill ubq_deamon"
7*94c4a1e1SFrank Piva
8*94c4a1e1SFrank PivaBS=4k
9*94c4a1e1SFrank PivaRW=rw
10*94c4a1e1SFrank PivaJOBS=4
11*94c4a1e1SFrank PivaQUEUES=2
12*94c4a1e1SFrank PivaRT=$TRUNTIME
13*94c4a1e1SFrank PivaLOOPS=4
14*94c4a1e1SFrank PivaURING_COMP=1
15*94c4a1e1SFrank PivaNEED_GET_DATA=1
16*94c4a1e1SFrank Piva
17*94c4a1e1SFrank Pivaublk_run_abort_test()
18*94c4a1e1SFrank Piva{
19*94c4a1e1SFrank Piva	for CNT in `seq $LOOPS`; do
20*94c4a1e1SFrank Piva		export T_TYPE_PARAMS="-t null -q $QUEUES -u $URING_COMP -g $NEED_GET_DATA"
21*94c4a1e1SFrank Piva		DEV=`__create_ublk_dev`
22*94c4a1e1SFrank Piva		echo -e "\trun fio with killing $DEV(ublk add $T_TYPE_PARAMS) queue daemon $CNT"
23*94c4a1e1SFrank Piva		__run_fio_libaio $DEV $BS $RW $JOBS $RT > /dev/null 2 >& 1 &
24*94c4a1e1SFrank Piva		sleep 2
25*94c4a1e1SFrank Piva		queue_tid=`__ublk_get_queue_tid $DEV 0`
26*94c4a1e1SFrank Piva		kill -9 $queue_tid
27*94c4a1e1SFrank Piva		sleep 2
28*94c4a1e1SFrank Piva		secs=0
29*94c4a1e1SFrank Piva		while [ $secs -lt 30 ]; do
30*94c4a1e1SFrank Piva			state=`__ublk_get_dev_state $DEV`
31*94c4a1e1SFrank Piva			[ "$state" == "DEAD" ] && break
32*94c4a1e1SFrank Piva			sleep 1
33*94c4a1e1SFrank Piva			let secs++
34*94c4a1e1SFrank Piva		done
35*94c4a1e1SFrank Piva		[ "$state" != "DEAD" ] && echo "device isn't dead after killing queue daemon" && exit -1
36*94c4a1e1SFrank Piva		RES=`__remove_ublk_dev_return $DEV`
37*94c4a1e1SFrank Piva		if [ $RES -ne 0 ]; then
38*94c4a1e1SFrank Piva				echo -e "\tdelete $DEV failed"
39*94c4a1e1SFrank Piva				exit -1
40*94c4a1e1SFrank Piva		fi
41*94c4a1e1SFrank Piva		wait
42*94c4a1e1SFrank Piva	done
43*94c4a1e1SFrank Piva}
44*94c4a1e1SFrank Piva
45*94c4a1e1SFrank Pivafor NEED_GET_DATA in `seq 0 1`; do
46*94c4a1e1SFrank Piva	ublk_run_abort_test
47*94c4a1e1SFrank Pivadone
48