On 04/25/2018 11:15 AM, Peter Krempa wrote: > Test that the 'aio' option is applied correctly for the 'file' protocol > backend and across the backing chain. > > The top level disk image would generate the following '-drive' cmdline: > > file-backing_basic-aio_threads: > -drive file=/var/lib/libvirt/images/a,format=qcow,if=none,id=drive-dummy,aio=threads > -device virtio-blk-pci,scsi=off,drive=drive-dummy,id=dummy > > file-raw-aio_native: > -drive file=/path/to/i.img,format=raw,if=none,id=drive-dummy,cache=none,aio=native > -device virtio-blk-pci,scsi=off,drive=drive-dummy,id=dummy,write-cache=on > > Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> > --- > tests/qemublocktest.c | 2 + > .../xml2json/file-backing_basic-aio_threads.json | 62 ++++++++++++++++++++++ > .../xml2json/file-backing_basic-aio_threads.xml | 47 ++++++++++++++++ > .../xml2json/file-raw-aio_native.json | 21 ++++++++ > .../xml2json/file-raw-aio_native.xml | 12 +++++ > 5 files changed, 144 insertions(+) > create mode 100644 tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json > create mode 100644 tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml > create mode 100644 tests/qemublocktestdata/xml2json/file-raw-aio_native.json > create mode 100644 tests/qemublocktestdata/xml2json/file-raw-aio_native.xml > Taking the leap of faith that the results are "expected" :-)... At least I know gluster shouldn't be getting the aio based on code! Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> John > diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c > index 81a2261dab..a79ffa90d8 100644 > --- a/tests/qemublocktest.c > +++ b/tests/qemublocktest.c > @@ -416,6 +416,8 @@ mymain(void) > TEST_DISK_TO_JSON("file-backing_basic-noopts"); > TEST_DISK_TO_JSON("dir-fat-readonly"); > TEST_DISK_TO_JSON("dir-fat-floppy"); > + TEST_DISK_TO_JSON("file-raw-aio_native"); > + TEST_DISK_TO_JSON("file-backing_basic-aio_threads"); > > cleanup: > virHashFree(diskxmljsondata.schema); > diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json > new file mode 100644 > index 0000000000..dcaf905085 > --- /dev/null > +++ b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.json > @@ -0,0 +1,62 @@ > +{ > + "node-name": "node-a-f", > + "read-only": false, > + "driver": "qcow", > + "file": { > + "driver": "file", > + "filename": "/var/lib/libvirt/images/a", > + "aio": "threads", > + "node-name": "node-a-s", > + "read-only": false, > + "discard": "unmap" > + }, > + "backing": "node-b-f" > +} > +{ > + "node-name": "node-b-f", > + "read-only": true, > + "driver": "qed", > + "file": { > + "driver": "file", > + "filename": "/var/lib/libvirt/images/b", > + "aio": "threads", > + "node-name": "node-b-s", > + "read-only": true, > + "discard": "unmap" > + }, > + "backing": "node-c-f" > +} > +{ > + "node-name": "node-c-f", > + "read-only": true, > + "driver": "vmdk", > + "file": { > + "driver": "gluster", > + "volume": "images", > + "path": "c", > + "server": [ > + { > + "type": "inet", > + "host": "test.org", > + "port": "24007" > + } > + ], > + "node-name": "node-c-s", > + "read-only": true, > + "discard": "unmap" > + }, > + "backing": "node-d-f" > +} > +{ > + "node-name": "node-d-f", > + "read-only": true, > + "driver": "raw", > + "file": { > + "driver": "file", > + "filename": "/var/lib/libvirt/images/d", > + "aio": "threads", > + "node-name": "node-d-s", > + "read-only": true, > + "discard": "unmap" > + } > +} > diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml > new file mode 100644 > index 0000000000..ad84fab720 > --- /dev/null > +++ b/tests/qemublocktestdata/xml2json/file-backing_basic-aio_threads.xml > @@ -0,0 +1,47 @@ > +<disk type='file' device='disk'> > + <driver name='qemu' type='qcow' io='threads'/> > + <source file='/var/lib/libvirt/images/a'> > + <privateData> > + <nodenames> > + <nodename type='storage' name='node-a-s'/> > + <nodename type='format' name='node-a-f'/> > + </nodenames> > + </privateData> > + </source> > + <backingStore type='file' index='1'> > + <format type='qed'/> > + <source file='/var/lib/libvirt/images/b'> > + <privateData> > + <nodenames> > + <nodename type='storage' name='node-b-s'/> > + <nodename type='format' name='node-b-f'/> > + </nodenames> > + </privateData> > + </source> > + <backingStore type='network' index='2'> > + <format type='vmdk'/> > + <source protocol='gluster' name='images/c'> > + <host name='test.org'/> > + <privateData> > + <nodenames> > + <nodename type='storage' name='node-c-s'/> > + <nodename type='format' name='node-c-f'/> > + </nodenames> > + </privateData> > + </source> > + <backingStore type='file' index='3'> > + <format type='raw'/> > + <source file='/var/lib/libvirt/images/d'> > + <privateData> > + <nodenames> > + <nodename type='storage' name='node-d-s'/> > + <nodename type='format' name='node-d-f'/> > + </nodenames> > + </privateData> > + </source> > + <backingStore/> > + </backingStore> > + </backingStore> > + </backingStore> > + <target dev='vda'/> > +</disk> > diff --git a/tests/qemublocktestdata/xml2json/file-raw-aio_native.json b/tests/qemublocktestdata/xml2json/file-raw-aio_native.json > new file mode 100644 > index 0000000000..2752e0b204 > --- /dev/null > +++ b/tests/qemublocktestdata/xml2json/file-raw-aio_native.json > @@ -0,0 +1,21 @@ > +{ > + "node-name": "test1", > + "read-only": false, > + "cache": { > + "direct": true, > + "no-flush": false > + }, > + "driver": "raw", > + "file": { > + "driver": "file", > + "filename": "/path/to/i.img", > + "aio": "native", > + "node-name": "test2", > + "cache": { > + "direct": true, > + "no-flush": false > + }, > + "read-only": false, > + "discard": "unmap" > + } > +} > diff --git a/tests/qemublocktestdata/xml2json/file-raw-aio_native.xml b/tests/qemublocktestdata/xml2json/file-raw-aio_native.xml > new file mode 100644 > index 0000000000..470b60f26b > --- /dev/null > +++ b/tests/qemublocktestdata/xml2json/file-raw-aio_native.xml > @@ -0,0 +1,12 @@ > +<disk device='disk'> > + <driver name='qemu' type='raw' io='native' cache='none'/> > + <source file='/path/to/i.img'> > + <privateData> > + <nodenames> > + <nodename type='storage' name='test2'/> > + <nodename type='format' name='test1'/> > + </nodenames> > + </privateData> > + </source> > + <target dev='vda'/> > +</disk> > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list