test/nvme/hotplug: create QEMU host drives at startup

We used to create them at runtime with QEMU monitor, but
they can be created just once at startup. While here, start
using loops in bash to create/modify 4 equal drives.

Change-Id: Ie73ba3496a1cfb5d5a173118d331d90eee713270
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2144
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Darek Stojaczyk 2020-04-30 13:10:28 +02:00 committed by Tomasz Zawadzki
parent 85d0f9a83a
commit da2aa2aca0

View File

@ -33,42 +33,24 @@ function wait_for_devices_ready() {
done
}
function devices_initialization() {
timing_enter devices_initialization
dd if=/dev/zero of="$SPDK_TEST_STORAGE/test0" bs=1M count=1024
dd if=/dev/zero of="$SPDK_TEST_STORAGE/test1" bs=1M count=1024
dd if=/dev/zero of="$SPDK_TEST_STORAGE/test2" bs=1M count=1024
dd if=/dev/zero of="$SPDK_TEST_STORAGE/test3" bs=1M count=1024
monitor_cmd "drive_add 0 file=$SPDK_TEST_STORAGE/test0,format=raw,id=drive0,if=none"
monitor_cmd "drive_add 1 file=$SPDK_TEST_STORAGE/test1,format=raw,id=drive1,if=none"
monitor_cmd "drive_add 2 file=$SPDK_TEST_STORAGE/test2,format=raw,id=drive2,if=none"
monitor_cmd "drive_add 3 file=$SPDK_TEST_STORAGE/test3,format=raw,id=drive3,if=none"
timing_exit devices_initialization
}
function insert_devices() {
monitor_cmd "device_add nvme,drive=drive0,id=nvme0,serial=nvme0"
monitor_cmd "device_add nvme,drive=drive1,id=nvme1,serial=nvme1"
monitor_cmd "device_add nvme,drive=drive2,id=nvme2,serial=nvme2"
monitor_cmd "device_add nvme,drive=drive3,id=nvme3,serial=nvme3"
for i in {0..3}; do
monitor_cmd "device_add nvme,drive=drive$i,id=nvme$i,serial=nvme$i"
done
wait_for_devices_ready
ssh_vm "scripts/setup.sh"
}
function remove_devices() {
monitor_cmd "device_del nvme0"
monitor_cmd "device_del nvme1"
monitor_cmd "device_del nvme2"
monitor_cmd "device_del nvme3"
for i in {0..3}; do
monitor_cmd "device_del nvme$i"
done
}
function devices_delete() {
timing_enter devices_delete
rm "$SPDK_TEST_STORAGE/test0"
rm "$SPDK_TEST_STORAGE/test1"
rm "$SPDK_TEST_STORAGE/test2"
rm "$SPDK_TEST_STORAGE/test3"
timing_exit devices_delete
for i in {0..3}; do
rm "$SPDK_TEST_STORAGE/nvme$i.img"
done
}
password=$1
@ -85,6 +67,10 @@ timing_enter start_qemu
qemu-img create -b "$base_img" -f qcow2 "$test_img"
for i in {0..3}; do
dd if=/dev/zero of="$SPDK_TEST_STORAGE/nvme$i.img" bs=1M count=1024
done
qemu-system-x86_64 \
-daemonize -display none -m 8192 \
-pidfile "$qemu_pidfile" \
@ -95,7 +81,11 @@ qemu-system-x86_64 \
-smp cores=16,sockets=1 \
--enable-kvm \
-chardev socket,id=mon0,host=localhost,port=4444,server,nowait \
-mon chardev=mon0,mode=readline
-mon chardev=mon0,mode=readline \
-drive format=raw,file="$SPDK_TEST_STORAGE/nvme0.img",if=none,id=drive0 \
-drive format=raw,file="$SPDK_TEST_STORAGE/nvme1.img",if=none,id=drive1 \
-drive format=raw,file="$SPDK_TEST_STORAGE/nvme2.img",if=none,id=drive2 \
-drive format=raw,file="$SPDK_TEST_STORAGE/nvme3.img",if=none,id=drive3
timing_exit start_qemu
@ -113,7 +103,6 @@ files_to_copy+="examples/nvme/hotplug/hotplug "
) | (ssh_vm "tar -xf -")
timing_exit copy_repo
devices_initialization
insert_devices
timing_enter hotplug_test