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