diff options
author | Oskari Saarenmaa <os@ohmu.fi> | 2011-09-22 22:33:47 +0300 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2011-09-23 08:29:57 -0600 |
commit | f887334dcf0c0e4b883d6afed5c5b580552ecc01 (patch) | |
tree | 15a8dc37ee458b51426c38b42b8ad29a3e4dd54b /tests | |
parent | Fix synchronous reading of stream data (diff) | |
download | libvirt-f887334dcf0c0e4b883d6afed5c5b580552ecc01.tar.gz libvirt-f887334dcf0c0e4b883d6afed5c5b580552ecc01.tar.bz2 libvirt-f887334dcf0c0e4b883d6afed5c5b580552ecc01.zip |
Add unsafe cache mode support for disk driver
QEMU 0.13 introduced cache=unsafe for -drive, this patch exposes
it in the libvirt layer.
* Introduced a new QEMU capability flag ($prefix_CACHE_UNSAFE),
as even if $prefix_CACHE_V2 is set, we can't know if unsafe
is supported.
* Improved the reliability of qemu cache type detection.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/qemuargv2xmltest.c | 1 | ||||
-rw-r--r-- | tests/qemuhelptest.c | 3 | ||||
-rw-r--r-- | tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.args | 5 | ||||
-rw-r--r-- | tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml | 33 | ||||
-rw-r--r-- | tests/qemuxml2argvtest.c | 3 |
5 files changed, 45 insertions, 0 deletions
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c index 91f15af6b..6a7963086 100644 --- a/tests/qemuargv2xmltest.c +++ b/tests/qemuargv2xmltest.c @@ -169,6 +169,7 @@ mymain(void) DO_TEST("disk-drive-cache-v2-wb"); DO_TEST("disk-drive-cache-v2-none"); DO_TEST("disk-drive-cache-directsync"); + DO_TEST("disk-drive-cache-unsafe"); DO_TEST("disk-drive-network-nbd"); DO_TEST("disk-drive-network-rbd"); DO_TEST("disk-drive-network-sheepdog"); diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c index 933d55630..0ff823658 100644 --- a/tests/qemuhelptest.c +++ b/tests/qemuhelptest.c @@ -165,6 +165,7 @@ mymain(void) QEMU_CAPS_MIGRATE_QEMU_TCP, QEMU_CAPS_MIGRATE_QEMU_EXEC, QEMU_CAPS_DRIVE_CACHE_V2, + QEMU_CAPS_DRIVE_CACHE_UNSAFE, QEMU_CAPS_KVM, QEMU_CAPS_DRIVE_FORMAT, QEMU_CAPS_DRIVE_SERIAL, @@ -408,6 +409,7 @@ mymain(void) QEMU_CAPS_MIGRATE_QEMU_TCP, QEMU_CAPS_MIGRATE_QEMU_EXEC, QEMU_CAPS_DRIVE_CACHE_V2, + QEMU_CAPS_DRIVE_CACHE_UNSAFE, QEMU_CAPS_KVM, QEMU_CAPS_DRIVE_FORMAT, QEMU_CAPS_DRIVE_SERIAL, @@ -460,6 +462,7 @@ mymain(void) QEMU_CAPS_MIGRATE_QEMU_TCP, QEMU_CAPS_MIGRATE_QEMU_EXEC, QEMU_CAPS_DRIVE_CACHE_V2, + QEMU_CAPS_DRIVE_CACHE_UNSAFE, QEMU_CAPS_KVM, QEMU_CAPS_DRIVE_FORMAT, QEMU_CAPS_DRIVE_SERIAL, diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.args new file mode 100644 index 000000000..f8ddcd849 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.args @@ -0,0 +1,5 @@ +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \ +pc -m 214 -smp 1 -nographic -monitor unix:/tmp/test-monitor,server,nowait \ +-no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,bus=0,unit=0,\ +format=qcow2,cache=unsafe -drive file=/dev/HostVG/QEMUGuest2,if=ide,\ +media=cdrom,bus=1,unit=0,format=raw -net none -serial none -parallel none -usb diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml new file mode 100644 index 000000000..37185f64d --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.xml @@ -0,0 +1,33 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory>219136</memory> + <currentMemory>219136</currentMemory> + <vcpu>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <driver name='qemu' type='qcow2' cache='unsafe'/> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' unit='0'/> + </disk> + <disk type='block' device='cdrom'> + <driver name='qemu' type='raw'/> + <source dev='/dev/HostVG/QEMUGuest2'/> + <target dev='hdc' bus='ide'/> + <readonly/> + <address type='drive' controller='0' bus='1' unit='0'/> + </disk> + <controller type='ide' index='0'/> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 1dc6a0175..9e174b378 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -341,6 +341,9 @@ mymain(void) DO_TEST("disk-drive-cache-directsync", false, QEMU_CAPS_DRIVE, QEMU_CAPS_DRIVE_CACHE_V2, QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC, QEMU_CAPS_DRIVE_FORMAT); + DO_TEST("disk-drive-cache-unsafe", false, + QEMU_CAPS_DRIVE, QEMU_CAPS_DRIVE_CACHE_V2, + QEMU_CAPS_DRIVE_CACHE_UNSAFE, QEMU_CAPS_DRIVE_FORMAT); DO_TEST("disk-drive-network-nbd", false, QEMU_CAPS_DRIVE, QEMU_CAPS_DRIVE_FORMAT); DO_TEST("disk-drive-network-rbd", false, |