qemu: Add the group name option to the iotune command line

Add in the block I/O throttling group parameter to the command line
if supported. If not supported, fail command creation.

Add the xml2argvtest for testing.

Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
John Ferlan 2016-10-01 09:35:09 -04:00
parent 32d99cb772
commit 1ff38366b8
3 changed files with 49 additions and 0 deletions

View File

@ -1790,6 +1790,15 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
goto error;
}
/* block I/O group 2.4 */
if (disk->blkdeviotune.group_name &&
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_GROUP)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("the block I/O throttling group parameter is "
"not supported with this QEMU binary"));
goto error;
}
/* block I/O throttling length 2.6 */
if ((disk->blkdeviotune.total_bytes_sec_max_length ||
disk->blkdeviotune.read_bytes_sec_max_length ||
@ -1844,6 +1853,10 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
IOTUNE_ADD(write_iops_sec_max, "iops-write-max");
IOTUNE_ADD(size_iops_sec, "iops-size");
if (disk->blkdeviotune.group_name) {
virBufferEscapeString(&opt, ",throttling.group=%s",
disk->blkdeviotune.group_name);
}
IOTUNE_ADD(total_bytes_sec_max_length, "bps-total-max-length");
IOTUNE_ADD(read_bytes_sec_max_length, "bps-read-max-length");

View File

@ -0,0 +1,32 @@
LC_ALL=C \
PATH=/bin \
HOME=/home/test \
USER=test \
LOGNAME=test \
QEMU_AUDIO_DRV=none \
/usr/bin/qemu \
-name QEMUGuest1 \
-S \
-M pc \
-m 214 \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
-nographic \
-nodefaults \
-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
-no-acpi \
-boot c \
-usb \
-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-0,\
cache=none,throttling.bps-total=5000,throttling.iops-total=6000,\
throttling.bps-total-max=10000,throttling.iops-total-max=11000,\
throttling.group=libvirt_iotune_group1 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
-drive file=/dev/HostVG/QEMUGuest2,format=qcow2,if=none,id=drive-ide0-0-1,\
cache=none,throttling.bps-read=5000,throttling.bps-write=5500,\
throttling.iops-read=3500,throttling.iops-write=4000,\
throttling.bps-read-max=6000,throttling.bps-write-max=6500,\
throttling.iops-read-max=7000,throttling.iops-write-max=7500,\
throttling.iops-size=2000,throttling.group=libvirt_iotune_group2 \
-device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3

View File

@ -1570,6 +1570,10 @@ mymain(void)
DO_TEST("blkdeviotune-max",
QEMU_CAPS_DRIVE_IOTUNE,
QEMU_CAPS_DRIVE_IOTUNE_MAX);
DO_TEST("blkdeviotune-group-num",
QEMU_CAPS_DRIVE_IOTUNE,
QEMU_CAPS_DRIVE_IOTUNE_MAX,
QEMU_CAPS_DRIVE_IOTUNE_GROUP);
DO_TEST("blkdeviotune-max-length",
QEMU_CAPS_DRIVE_IOTUNE,
QEMU_CAPS_DRIVE_IOTUNE_MAX,