xref: /spdk/test/nvmf/host/fio.sh (revision e1aecaaad43ff574afab51a5ee30bed26c61fa59)
113fc774bSZiye Yang#!/usr/bin/env bash
2eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
3eb53c232Spaul luse#  Copyright (C) 2017 Intel Corporation
4eb53c232Spaul luse#  All rights reserved.
5eb53c232Spaul luse#
613fc774bSZiye Yangtestdir=$(readlink -f $(dirname $0))
713fc774bSZiye Yangrootdir=$(readlink -f $testdir/../../..)
8c9e5d2a6SSeth Howellsource $rootdir/test/common/autotest_common.sh
952c773ceSwenzhong wusource $rootdir/scripts/common.sh
1013fc774bSZiye Yangsource $rootdir/test/nvmf/common.sh
1113fc774bSZiye Yang
120684024dSJaroslaw Chachulskirpc_py="$rootdir/scripts/rpc.py"
130684024dSJaroslaw Chachulski
14913f5858SJim Harrisnvmftestinit
15d6a11694SSeth Howell
16053c15b3SMichal Bergerif [[ $CONFIG_FIO_PLUGIN != y ]]; then
1730c849c1SDaniel Verkamp	echo "FIO not available"
18bef870c6STomasz Zawadzki	exit 1
1930c849c1SDaniel Verkampfi
2030c849c1SDaniel Verkamp
213d38fcc3Scunyinchtiming_enter start_nvmf_tgt
2213fc774bSZiye Yang
23b4c5509cSMichal Berger"${NVMF_APP[@]}" -m 0xF &
2413fc774bSZiye Yangnvmfpid=$!
2513fc774bSZiye Yang
2690c84ec5SKarol Lateckitrap 'process_shm --id $NVMF_APP_SHM_ID; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
2713fc774bSZiye Yang
286bef902cSJim Harriswaitforlisten $nvmfpid
29015ef22aSSeth Howell$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS -u 8192
303d38fcc3Scunyinchtiming_exit start_nvmf_tgt
3113fc774bSZiye Yang
327964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 64 512 -b Malloc1
337538af70SMaciej Wawryk$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001
3459955106SJim Harris$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc1
35aa7a1398SJim Harris$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
36d98c3749SJim Harris$rpc_py nvmf_subsystem_add_listener discovery -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
3713fc774bSZiye Yang
3816841920SBen WalkerPLUGIN_DIR=$rootdir/app/fio/nvme
397b7799bfSJim Harris
4052c773ceSwenzhong wu# Test fio_plugin as host with malloc backend
413b9db6c4STomasz Zawadzkifio_nvme $PLUGIN_DIR/example_config.fio --filename="trtype=$TEST_TRANSPORT adrfam=IPv4 \
429c654883Swanghailiangxtraddr=$NVMF_FIRST_TARGET_IP trsvcid=$NVMF_PORT ns=1" --bs=4096
4347fca7c7SSeth Howell
4447fca7c7SSeth Howell# second test mocking multiple SGL elements
453b9db6c4STomasz Zawadzkifio_nvme $PLUGIN_DIR/mock_sgl_config.fio --filename="trtype=$TEST_TRANSPORT adrfam=IPv4 \
46cddfe002SJim Harristraddr=$NVMF_FIRST_TARGET_IP trsvcid=$NVMF_PORT ns=1"
4719baaa9aSMaciej Wawryk$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
4852c773ceSwenzhong wu
4952c773ceSwenzhong wuif [ $RUN_NIGHTLY -eq 1 ]; then
5052c773ceSwenzhong wu	# Test fio_plugin as host with nvme lvol backend
514641aa53SMichal Berger	bdfs=($(get_nvme_bdfs))
524641aa53SMichal Berger	$rpc_py bdev_nvme_attach_controller -b Nvme0 -t PCIe -a "${bdfs[0]}" -i $NVMF_FIRST_TARGET_IP
53de756853SMaciej Wawryk	ls_guid=$($rpc_py bdev_lvol_create_lvstore -c 1073741824 Nvme0n1 lvs_0)
547685a48fSJim Harris	get_lvs_free_mb $ls_guid
55c57cd922SMaciej Wawryk	$rpc_py bdev_lvol_create -l lvs_0 lbd_0 $free_mb
567538af70SMaciej Wawryk	$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode2 -a -s SPDK00000000000001
5759955106SJim Harris	$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode2 lvs_0/lbd_0
58aa7a1398SJim Harris	$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
593b9db6c4STomasz Zawadzki	fio_nvme $PLUGIN_DIR/example_config.fio --filename="trtype=$TEST_TRANSPORT adrfam=IPv4 \
609c654883Swanghailiangx	traddr=$NVMF_FIRST_TARGET_IP trsvcid=$NVMF_PORT ns=1" --bs=4096
6119baaa9aSMaciej Wawryk	$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode2
6252c773ceSwenzhong wu
6352c773ceSwenzhong wu	# Test fio_plugin as host with nvme lvol nested backend
64de756853SMaciej Wawryk	ls_nested_guid=$($rpc_py bdev_lvol_create_lvstore --clear-method none lvs_0/lbd_0 lvs_n_0)
657685a48fSJim Harris	get_lvs_free_mb $ls_nested_guid
66c57cd922SMaciej Wawryk	$rpc_py bdev_lvol_create -l lvs_n_0 lbd_nest_0 $free_mb
677538af70SMaciej Wawryk	$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode3 -a -s SPDK00000000000001
687685a48fSJim Harris	$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode3 lvs_n_0/lbd_nest_0
69aa7a1398SJim Harris	$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode3 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
703b9db6c4STomasz Zawadzki	fio_nvme $PLUGIN_DIR/example_config.fio --filename="trtype=$TEST_TRANSPORT adrfam=IPv4 \
719c654883Swanghailiangx	traddr=$NVMF_FIRST_TARGET_IP trsvcid=$NVMF_PORT ns=1" --bs=4096
7219baaa9aSMaciej Wawryk	$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode3
7330c849c1SDaniel Verkamp
7413fc774bSZiye Yang	sync
7552c773ceSwenzhong wu	# Delete lvol_bdev and destroy lvol_store.
76*e1aecaaaSJaroslaw Chachulski	$rpc_py -t 120 bdev_lvol_delete lvs_n_0/lbd_nest_0
774c049618SMaciej Wawryk	$rpc_py bdev_lvol_delete_lvstore -l lvs_n_0
78b5fdf4ecSMaciej Wawryk	$rpc_py bdev_lvol_delete lvs_0/lbd_0
794c049618SMaciej Wawryk	$rpc_py bdev_lvol_delete_lvstore -l lvs_0
8031e77a73SPawel Kaminski	$rpc_py bdev_nvme_detach_controller Nvme0
8152c773ceSwenzhong wufi
8213fc774bSZiye Yang
8313fc774bSZiye Yangtrap - SIGINT SIGTERM EXIT
8413fc774bSZiye Yang
852cc6b0dfSSeth Howellrm -f ./local-test-0-verify.state
86913f5858SJim Harrisnvmftestfini
87