3 testdir
=$
(readlink
-f $
(dirname $0))
4 rootdir
=$
(readlink
-f $testdir/..
/..
/..
)
5 source $rootdir/test
/common
/autotest_common.sh
6 source $rootdir/test
/vhost
/common.sh
7 source $rootdir/test
/vhost
/hotplug
/common.sh
9 if [[ $scsi_hot_remove_test == 1 ]] && [[ $blk_hot_remove_test == 1 ]]; then
10 notice
"Vhost-scsi and vhost-blk hotremove tests cannot be run together"
13 # Run spdk by calling run_vhost from hotplug/common.sh.
14 # Then prepare vhost with rpc calls and setup and run 4 VMs.
15 function pre_hot_attach_detach_test_case
() {
17 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p0.0
18 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p1.0
19 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p2.1
20 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p3.1
21 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p4.2
22 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p5.2
23 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p6.3
24 $rpc_py vhost_create_scsi_controller naa.Nvme0n1p7.3
25 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p4.2
0 Nvme0n1p8
26 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p4.2
1 Nvme0n1p9
27 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p5.2
0 Nvme0n1p10
28 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p5.2
1 Nvme0n1p11
29 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p6.3
0 Nvme0n1p12
30 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p6.3
1 Nvme0n1p13
31 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p7.3
0 Nvme0n1p14
32 $rpc_py vhost_scsi_controller_add_target naa.Nvme0n1p7.3
1 Nvme0n1p15
33 vms_setup_and_run
"0 1 2 3"
37 function clear_vhost_config
() {
38 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p4.2
0
39 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p4.2
1
40 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p5.2
0
41 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p5.2
1
42 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p6.3
0
43 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p6.3
1
44 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p7.3
0
45 $rpc_py vhost_scsi_controller_remove_target naa.Nvme0n1p7.3
1
46 $rpc_py vhost_delete_controller naa.Nvme0n1p0.0
47 $rpc_py vhost_delete_controller naa.Nvme0n1p1.0
48 $rpc_py vhost_delete_controller naa.Nvme0n1p2.1
49 $rpc_py vhost_delete_controller naa.Nvme0n1p3.1
50 $rpc_py vhost_delete_controller naa.Nvme0n1p4.2
51 $rpc_py vhost_delete_controller naa.Nvme0n1p5.2
52 $rpc_py vhost_delete_controller naa.Nvme0n1p6.3
53 $rpc_py vhost_delete_controller naa.Nvme0n1p7.3
56 trap 'error_exit "${FUNCNAME}" "${LINENO}"' ERR
57 # Hotremove/hotattach/hotdetach test cases prerequisites
58 # Run vhost with 2 NVMe disks.
60 notice
"==============="
65 $rpc_py bdev_nvme_set_hotplug
-e
66 $rpc_py bdev_split_create Nvme0n1
16
67 $rpc_py bdev_malloc_create
128 512 -b Malloc
68 $rpc_py bdev_split_create Malloc
4
69 $rpc_py bdev_split_create HotInNvme0n1
2
70 $rpc_py bdev_split_create HotInNvme1n1
2
71 $rpc_py bdev_split_create HotInNvme2n1
2
72 $rpc_py bdev_split_create HotInNvme3n1
2
73 $rpc_py bdev_get_bdevs
75 if [[ $scsi_hot_remove_test == 0 ]] && [[ $blk_hot_remove_test == 0 ]]; then
76 pre_hot_attach_detach_test_case
77 $testdir/scsi_hotattach.sh
--fio-bin=$fio_bin &
79 $testdir/scsi_hotdetach.sh
--fio-bin=$fio_bin &
86 if [[ $scsi_hot_remove_test == 1 ]]; then
87 source $testdir/scsi_hotremove.sh
89 if [[ $blk_hot_remove_test == 1 ]]; then
90 source $testdir/blk_hotremove.sh