542b541588
Implemented abstract vhost event layer on top of virtio eventq. This allows us to defer virtio-event-related actions to be called from the vhost poller thread. This is required for hot-attach, for which io_channels have to be created on the I/O thread. This adds full support for hot-attaching and hot-detaching vhost scsi devices. They can be now attached to a controller via RPC at any time. Change-Id: Icf353bfcf69c83ef16b8fc771ea4c487002094f9 Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Signed-off-by: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-on: https://review.gerrithub.io/370016 Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> |
||
---|---|---|
.. | ||
fio_jobs | ||
autotest.config | ||
autotest.sh | ||
common.sh | ||
README | ||
run_fio.py | ||
run_vhost.sh | ||
vhost.conf.in | ||
vm_run.sh | ||
vm_setup.sh | ||
vm_shutdown.sh | ||
vm_ssh.sh |
Overview --- Utility scripts for automated FIO tests of virtual machines. Virtualization is done using QEMU software. Requirements --- - 'fio' and 'perf' packages must be installed in order for tests to run - Installed fio version must be the same as fio installed on qemu guest systems. Another solution is to provide the path to a FIO binary in arguments for testing scripts. If fio versions are different tests will not run. - All dependency packages for building QEMU. - QEMU source package. By default it is expected to be in the "qemu" directory in the root dir of the main spdk directory. - a qemu-compatible VM image. - RSA key for VM SSH access in $HOME/.ssh/spdk_vhost_id_rsa or in a different directory specified by $SPDK_VHOST_SSH_KEY_FILE global variable. Files: --- common.sh Header file to be included in other files. autotest.sh Script to perform automated fio test with given number of virtual machines and given scenario type (virtio / kernel vhost / spdk vhost). Can run an end-to-end test or with "--dry-run" option can just enable virtual machines and leave them for user's manual tests. run_vhost.sh Run single instance of vhost application. Useful during development. See 'run_vhost.sh --help' run_fio.py Script used to run fio utility on group of virtual machines using default configuration or with parameters specified for autotest.sh execution. Script can also be executed with manually input parameters, resulting in launching multiple fio jobs which are then combinations of all parameters. See 'python run_fio.py --help' vm_setup.sh Utility script used to create a virtual machine with spcified disk/block device and cache type for tests. Useful during development. See 'vm_setup.sh --help' vm_run.sh Utility script used to enable selected virtual machines. Can enable all or specific virtual machines from directory. Before running this script make sure that there was at least 1 virtual machine created using vm_setup.sh script. Useful during development. See 'vm_run.sh --help' vm_shutdown.sh Utility script used to shut down all or specific virtual machines if any remain active after test run. Useful during development. See 'vm_shutdown.sh --help' vm_ssh.sh Utility script used to connect to specific virtual machine via ssh. Useful during development. See 'vm_ssh.sh --help' Examples: --- --- Example 1, simple run: In spdk directory execute: ./test/vhost/autotest.sh --vm=0,<path to VM image>,<device> --fio-bin=<path to fio bin> <device> - backend used for testing, e.g. Malloc0, Nvme0n1... <path to fio bin> - path to FIO binary This runs tests for 1 VM using spdk vhost. By default all jobs defined in test/vhost/fiotest/fio_jobs/ are executed sequentially. --- Example 2, multiple VMs: ./test/vhost/autotest.sh --vm=0,<path to VM image>,<device> --vm=1,<path to VM image 2>,<device 2> Same configuration as Example 1 but fio runs in parallel on 2 VMs