Commit 46b93de6 authored by Pawel Niedzwiecki's avatar Pawel Niedzwiecki Committed by Jim Harris
Browse files

test/virtio: update test_plan.md

parent ff12a9b5
Loading
Loading
Loading
Loading
+35 −55
Original line number Diff line number Diff line
@@ -73,61 +73,41 @@
- checks that other devices in the same controller are unaffected by hot-attach
    and hot-detach operations

### Vhost initiator test
Testing vhost initiator with fio write, randwrite, rw and randrw with verificiation enabled.
Tests include vhost-user (vhost initiator connecting to the socket on the same machine)
and virtio-pci (virtio initiator in a VM connecting to the virtual PCI SCSI device created by the hypervisor)
All tests are run in virtio-user mode. Tests 2-3, 5-9 are additionally run in virtio-pci mode.

#### Test Case 1 - vhost initiator test with malloc
1. Run vhost with one scsi controller and with one malloc bdev with 512 block size.
2. Prepare config for bdevio with virtio section.
3. Run bdevio test application with config.
4. Generate the fio config file given the list of all bdevs.
5. Run fio tests: iodepth=128, block_size=4k, rw, randwrite, write, randrw with verification.
6. Check if fio tests are successful.

#### Test Case 2 - vhost initiator test with nvme
1. Run vhost with one scsi controller and with one nvme bdev with 512 block size.
2. Repeat steps 2-6 from test case 1.

#### Test Case 3 - vhost initiator test with lvol
1. Run vhost with one scsi controller and with one lvol bdev with 512 block size.
2. Repeat steps 2-6 from test case 1

#### Test Case 4 - vhost initiator test with malloc
1. Run vhost with one scsi controller and with one malloc bdev with 4096 block size.
2. Repeat steps 2-6 from test case 1.

#### Test Case 5 - vhost initiator test with lvol
1. Run vhost with one scsi controller and with one lvol bdev with 4096 block size.
2. Repeat steps 2-6 from test case 1

#### Test Case 6 - vhost initiator test with nvme disk (size larger than 4G)
1. Run vhost with one scsi controller and with one nvme bdev with 512 block size and disk size larger than 4G
   to test if we can read, write to device with fio offset set to 4G.
2. Repeat steps 4-6 from test case 1.

#### Test Case 7 - vhost initiator test with multiqueue
1. Run vhost with one scsi controller (one malloc bdev and one nvme bdev).
2. Generate the fio config file given the list of all bdevs.
3. Run fio tests: iodepth=128, block_size=4k, rw, randread, randwrite, read, write, randrw with verify
4. Check if fio tests are successful.

#### Test Case 8 - vhost initator test with multiple socket
1. Run vhost with two scsi controllers, one with nvme bdev and one with malloc bdev.
2. Generate the fio config file given the list of all bdevs.
3. Run fio tests: iodepth=128, block_size=4k, write with verification.
4. Check if fio tests are successful.

#### Test Case 9 - vhost initiator test with unmap
1. Run vhost with one controller and one nvme bdev with 512 block size.
2. Run fio test with sequential jobs: trim, randtrim, write.
   All this jobs run with verification enabled.
   Use trim_verify_zero fio option to check if blocks are returned as zeroes.
   Write with verify after trim to check if we still can write and read from device.
3. Check if fio test ends with success.
4. Repeat steps 1-3 on host for malloc with 4096 block size and 512 block size.
#### virtio initiator tests
- virtio user mode: connect to vhost-scsi controller sockets directly on host
- virtio pci mode: connect to virtual pci devices on guest virtual machine
- 6 concurrent jobs are run simultaneously on 3 devices with 18 virtqueues

##### Test configuration
- SPDK vhost application is used for testing
- FIO using spdk fio_plugin: rw, randrw, randwrite, write with verification enabled.
- trim sequential and trim random then write on trimmed areas with verification enabled
    only on unmap supporting devices
- FIO job configuration: iodepth=128, block size=4k, runtime=10s
- all test cases run jobs in parallel on multiple bdevs
- 18 queues

##### vhost configuration
- scsi controller with 6 NVMe splits
- scsi controller with malloc with 512 block size
- scsi controller with malloc with 4096 block size

##### Test case 1
- virtio user on host
- perform FIO rw, randwrite, randrw, write, parallel jobs on all devices

##### Test case 2
- virtio user on host
- perform FIO trim, randtrim, rw, randwrite, randrw, write, - parallel jobs
    then write on trimmed areas on unmap supporting devices

##### Test case 3
- virtio pci on vm
- same config as in TC#1

##### Test case 4
- virtio pci on vm
- same config as in TC#2

### Live migration
Live migration feature allows to move running virtual machines between SPDK vhost