]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | #!/usr/bin/env bash |
2 | ||
9f95a23c TL |
3 | testdir=$(readlink -f $(dirname $0)) |
4 | rootdir=$(readlink -f $testdir/../../..) | |
5 | source $rootdir/test/common/autotest_common.sh | |
11fdf7f2 | 6 | |
f67539c2 TL |
7 | function run_spdk_fio() { |
8 | fio_bdev --ioengine=spdk_bdev "$@" --spdk_mem=1024 --spdk_single_seg=1 \ | |
9 | --verify_state_save=0 | |
11fdf7f2 TL |
10 | } |
11 | ||
f67539c2 TL |
12 | function err_cleanup() { |
13 | rm -f $testdir/bdev.json | |
14 | killprocess $vhost_pid | |
15 | if [[ -n "$dummy_spdk_pid" ]] && kill -0 $dummy_spdk_pid &> /dev/null; then | |
16 | killprocess $dummy_spdk_pid | |
17 | fi | |
11fdf7f2 TL |
18 | } |
19 | ||
f67539c2 TL |
20 | # start vhost and configure it |
21 | trap 'err_cleanup; exit 1' SIGINT SIGTERM EXIT | |
22 | $SPDK_BIN_DIR/vhost & | |
23 | vhost_pid=$! | |
24 | waitforlisten $vhost_pid | |
11fdf7f2 | 25 | |
f67539c2 TL |
26 | $rootdir/scripts/gen_nvme.sh --json | $rootdir/scripts/rpc.py load_subsystem_config |
27 | if [ -z "$(rpc_cmd bdev_get_bdevs | jq '.[] | select(.name=="Nvme0n1")')" ]; then | |
28 | echo "Nvme0n1 bdev not found!" && false | |
29 | fi | |
11fdf7f2 | 30 | |
f67539c2 | 31 | rpc_cmd bdev_split_create Nvme0n1 6 |
11fdf7f2 | 32 | |
f67539c2 TL |
33 | rpc_cmd vhost_create_scsi_controller naa.Nvme0n1_scsi0.0 |
34 | rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 0 Nvme0n1p0 | |
35 | rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 1 Nvme0n1p1 | |
36 | rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 2 Nvme0n1p2 | |
37 | rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 3 Nvme0n1p3 | |
11fdf7f2 | 38 | |
f67539c2 TL |
39 | rpc_cmd vhost_create_blk_controller naa.Nvme0n1_blk0.0 Nvme0n1p4 |
40 | rpc_cmd vhost_create_blk_controller naa.Nvme0n1_blk1.0 Nvme0n1p5 | |
11fdf7f2 | 41 | |
f67539c2 TL |
42 | rpc_cmd bdev_malloc_create 128 512 --name Malloc0 |
43 | rpc_cmd vhost_create_scsi_controller naa.Malloc0.0 | |
44 | rpc_cmd vhost_scsi_controller_add_target naa.Malloc0.0 0 Malloc0 | |
11fdf7f2 | 45 | |
f67539c2 TL |
46 | rpc_cmd bdev_malloc_create 128 4096 --name Malloc1 |
47 | rpc_cmd vhost_create_scsi_controller naa.Malloc1.0 | |
48 | rpc_cmd vhost_scsi_controller_add_target naa.Malloc1.0 0 Malloc1 | |
11fdf7f2 | 49 | |
f67539c2 TL |
50 | # start a dummy app, create vhost bdevs in it, then dump the config for FIO |
51 | $SPDK_BIN_DIR/spdk_tgt -r /tmp/spdk2.sock -g & | |
52 | dummy_spdk_pid=$! | |
53 | waitforlisten $dummy_spdk_pid /tmp/spdk2.sock | |
54 | rpc_cmd -s /tmp/spdk2.sock bdev_virtio_attach_controller --trtype user --traddr 'naa.Nvme0n1_scsi0.0' -d scsi --vq-count 8 'VirtioScsi0' | |
55 | rpc_cmd -s /tmp/spdk2.sock bdev_virtio_attach_controller --trtype user --traddr 'naa.Nvme0n1_blk0.0' -d blk --vq-count 8 'VirtioBlk3' | |
56 | rpc_cmd -s /tmp/spdk2.sock bdev_virtio_attach_controller --trtype user --traddr 'naa.Nvme0n1_blk1.0' -d blk --vq-count 8 'VirtioBlk4' | |
11fdf7f2 | 57 | |
f67539c2 TL |
58 | rpc_cmd -s /tmp/spdk2.sock bdev_virtio_attach_controller --trtype user --traddr 'naa.Malloc0.0' -d scsi --vq-count 8 'VirtioScsi1' |
59 | rpc_cmd -s /tmp/spdk2.sock bdev_virtio_attach_controller --trtype user --traddr 'naa.Malloc1.0' -d scsi --vq-count 8 'VirtioScsi2' | |
11fdf7f2 | 60 | |
f67539c2 TL |
61 | cat <<- CONF > $testdir/bdev.json |
62 | {"subsystems":[ | |
63 | $(rpc_cmd -s /tmp/spdk2.sock save_subsystem_config -n bdev) | |
64 | ]} | |
65 | CONF | |
66 | killprocess $dummy_spdk_pid | |
11fdf7f2 | 67 | |
f67539c2 | 68 | # run FIO with previously acquired spdk config files |
11fdf7f2 | 69 | timing_enter run_spdk_fio |
f67539c2 | 70 | run_spdk_fio $testdir/bdev.fio --filename=* --section=job_randwrite --spdk_json_conf=$testdir/bdev.json |
11fdf7f2 TL |
71 | timing_exit run_spdk_fio |
72 | ||
73 | timing_enter run_spdk_fio_unmap | |
f67539c2 | 74 | run_spdk_fio $testdir/bdev.fio --filename="VirtioScsi1t0:VirtioScsi2t0" --spdk_json_conf=$testdir/bdev.json |
11fdf7f2 TL |
75 | timing_exit run_spdk_fio_unmap |
76 | ||
f67539c2 TL |
77 | rpc_cmd bdev_nvme_detach_controller Nvme0 |
78 | ||
79 | trap - SIGINT SIGTERM EXIT | |
80 | rm -f $testdir/bdev.json | |
81 | ||
82 | killprocess $vhost_pid |