a44c743417
We have no guaranty that iscsiadm -m session shows all required iscsi devices at some point of time after login. It may cause that not all devices are used in further tests (e.g. in fio). This patch allows to wait for a certain number of sessions after login. Change-Id: I868cb8f1235dd04d88572bc8518e97de99a2c5e6 Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/458236 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
testdir=$(readlink -f $(dirname $0))
|
|
ISCSI_PORT=3260
|
|
FIO_PATH=$1
|
|
IP_T=$2
|
|
|
|
set -xe
|
|
trap "exit 1" ERR SIGTERM SIGABRT
|
|
|
|
if [ ! -x $FIO_PATH/fio ]; then
|
|
error "Invalid path of fio binary"
|
|
fi
|
|
|
|
function run_spdk_iscsi_fio(){
|
|
$FIO_PATH/fio $testdir/perf.job "$@" --output-format=json
|
|
}
|
|
|
|
mkdir -p $testdir/perf_output
|
|
iscsi_fio_results="$testdir/perf_output/iscsi_fio.json"
|
|
trap "iscsiadm -m node --logout; iscsiadm -m node -o delete; exit 1" ERR SIGTERM SIGABRT
|
|
iscsiadm -m discovery -t sendtargets -p $IP_T:$ISCSI_PORT
|
|
iscsiadm -m node --login -p $IP_T:$ISCSI_PORT
|
|
waitforiscsidevices 1
|
|
|
|
disks=($(iscsiadm -m session -P 3 | grep "Attached scsi disk" | awk '{print $4}'))
|
|
for (( i=0; i < ${#disks[@]}; i++ ))
|
|
do
|
|
filename+=$(printf /dev/%s: "${disks[i]}")
|
|
waitforfile $filename
|
|
echo noop > /sys/block/${disks[i]}/queue/scheduler
|
|
echo "2" > /sys/block/${disks[i]}/queue/nomerges
|
|
echo "1024" > /sys/block/${disks[i]}/queue/nr_requests
|
|
done
|
|
|
|
run_spdk_iscsi_fio --filename=$filename "--output=$iscsi_fio_results"
|
|
|
|
iscsiadm -m node --logout || true
|
|
iscsiadm -m node -o delete || true
|