3 testdir
=$
(readlink
-f $
(dirname $0))
4 rootdir
=$testdir/..
/..
/..
5 source $rootdir/test
/common
/autotest_common.sh
6 source $rootdir/test
/nvmf
/common.sh
8 if [ ! -d "/usr/local/qemu/spdk-3.0.0" ]; then
9 echo "Qemu not installed on this machine. It may be a VM. Skipping nvmf_vhost test."
13 source $rootdir/test
/vhost
/common.sh
17 NVMF_SOCK
="/tmp/nvmf_rpc.sock"
18 NVMF_RPC
="$rootdir/scripts/rpc.py -s $NVMF_SOCK"
20 VHOST_SOCK
="/tmp/vhost_rpc.sock"
21 VHOST_APP
+=(-p 0 -r "$VHOST_SOCK" -u)
22 VHOST_RPC
="$rootdir/scripts/rpc.py -s $VHOST_SOCK"
27 "${NVMF_APP[@]}" -r $NVMF_SOCK &
29 waitforlisten
$nvmfpid $NVMF_SOCK
31 trap 'process_shm --id $NVMF_APP_SHM_ID; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
33 mkdir
-p "$(get_vhost_dir 3)"
35 "${VHOST_APP[@]}" -S "$(get_vhost_dir 3)" &
37 waitforlisten
$vhostpid $NVMF_SOCK
39 trap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $vhostpid nvmftestfini; exit 1' SIGINT SIGTERM EXIT
41 # Configure NVMF tgt on host machine
42 malloc_bdev
="$($NVMF_RPC bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)"
44 $NVMF_RPC nvmf_create_transport
$NVMF_TRANSPORT_OPTS -u 8192 -p 4
45 $NVMF_RPC nvmf_create_subsystem nqn
.2016-06.io.spdk
:cnode1
-a -s SPDK00000000000001
46 $NVMF_RPC nvmf_subsystem_add_ns nqn
.2016-06.io.spdk
:cnode1
"$malloc_bdev"
47 $NVMF_RPC nvmf_subsystem_add_listener nqn
.2016-06.io.spdk
:cnode1
-t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
49 # Configure VHost on host machine
50 $VHOST_RPC bdev_nvme_attach_controller
-b Nvme0
-t $TEST_TRANSPORT -f ipv4
-a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT -n nqn
.2016-06.io.spdk
:cnode1
51 $VHOST_RPC vhost_create_scsi_controller naa.VhostScsi0.3
52 $VHOST_RPC vhost_scsi_controller_add_target naa.VhostScsi0.3
0 "Nvme0n1"
54 # start qemu based VM.
55 vm_setup
--os="$VM_IMAGE" --disk-type=spdk_vhost_scsi
--disks="VhostScsi0" --force=3 --vhost-name=3
59 vm_wait_for_boot
300 3
61 # Run the fio workload remotely
62 vm_scp
3 $testdir/nvmf_vhost_fio.job
127.0.0.1:/root
/nvmf_vhost_fio.job
63 vm_exec
3 "fio /root/nvmf_vhost_fio.job"
66 trap - SIGINT SIGTERM EXIT