From: Chun Feng Wu <wucf@linux.ibm.com>
* Add tests for "throttlegroup"
* Add tests for "throttlefilter"
Signed-off-by: Chun Feng Wu <wucf@linux.ibm.com>
---
.../throttlefilter.x86_64-latest.args | 43 ++++++++++++
.../throttlefilter.x86_64-latest.xml | 65 +++++++++++++++++++
tests/qemuxmlconfdata/throttlefilter.xml | 55 ++++++++++++++++
tests/qemuxmlconftest.c | 1 +
4 files changed, 164 insertions(+)
create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/throttlefilter.xml
diff --git a/tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args b/tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args
new file mode 100644
index 0000000000..ed3f0145df
--- /dev/null
+++ b/tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args
@@ -0,0 +1,43 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=QEMUGuest1,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-accel tcg \
+-cpu qemu64 \
+-m size=219136k \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-object '{"qom-type":"throttle-group","id":"limit0","limits":{"bps-total":5000,"iops-total":6000}}' \
+-object '{"qom-type":"throttle-group","id":"limit1","limits":{"bps-read":5000,"bps-write":5000,"iops-total":7000}}' \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap","cache":{"direct":true,"no-flush":false}}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":true,"no-flush":false},"driver":"qcow2","file":"libvirt-3-storage"}' \
+-blockdev '{"driver":"throttle","node-name":"libvirt-4-filter","throttle-group":"limit0","file":"libvirt-3-format"}' \
+-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-4-filter","id":"ide0-0-0","bootindex":1,"write-cache":"on"}' \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap","cache":{"direct":true,"no-flush":false}}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":true,"no-flush":false},"driver":"qcow2","file":"libvirt-1-storage"}' \
+-blockdev '{"driver":"throttle","node-name":"libvirt-2-filter","throttle-group":"limit1","file":"libvirt-1-format"}' \
+-device '{"driver":"ide-hd","bus":"ide.0","unit":1,"drive":"libvirt-2-filter","id":"ide0-0-1","write-cache":"on"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml b/tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml
new file mode 100644
index 0000000000..c4c9602ff2
--- /dev/null
+++ b/tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml
@@ -0,0 +1,65 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <throttlegroups>
+ <throttlegroup>
+ <total_bytes_sec>5000</total_bytes_sec>
+ <total_iops_sec>6000</total_iops_sec>
+ <group_name>limit0</group_name>
+ </throttlegroup>
+ <throttlegroup>
+ <read_bytes_sec>5000</read_bytes_sec>
+ <write_bytes_sec>5000</write_bytes_sec>
+ <total_iops_sec>7000</total_iops_sec>
+ <group_name>limit1</group_name>
+ </throttlegroup>
+ </throttlegroups>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu64</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <throttlefilters>
+ <throttlefilter group='limit0'/>
+ </throttlefilters>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdb' bus='ide'/>
+ <throttlefilters>
+ <throttlefilter group='limit1'/>
+ </throttlefilters>
+ <address type='drive' controller='0' bus='0' target='0' unit='1'/>
+ </disk>
+ <controller type='usb' index='0' model='piix3-uhci'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/throttlefilter.xml b/tests/qemuxmlconfdata/throttlefilter.xml
new file mode 100644
index 0000000000..10b7d1c01b
--- /dev/null
+++ b/tests/qemuxmlconfdata/throttlefilter.xml
@@ -0,0 +1,55 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <throttlegroups>
+ <throttlegroup>
+ <total_bytes_sec>5000</total_bytes_sec>
+ <total_iops_sec>6000</total_iops_sec>
+ <group_name>limit0</group_name>
+ </throttlegroup>
+ <throttlegroup>
+ <read_bytes_sec>5000</read_bytes_sec>
+ <write_bytes_sec>5000</write_bytes_sec>
+ <total_iops_sec>7000</total_iops_sec>
+ <group_name>limit1</group_name>
+ </throttlegroup>
+ </throttlegroups>
+ <os>
+ <type arch='x86_64' 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-system-x86_64</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <throttlefilters>
+ <throttlefilter group='limit0'/>
+ </throttlefilters>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdb' bus='ide'/>
+ <throttlefilters>
+ <throttlefilter group='limit1'/>
+ </throttlefilters>
+ <address type='drive' controller='0' bus='0' target='0' unit='1'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='virtio'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index d2f62081b7..7ac83b3fd9 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2324,6 +2324,7 @@ mymain(void)
DO_TEST_CAPS_LATEST("blkdeviotune-max");
DO_TEST_CAPS_LATEST("blkdeviotune-group-num");
DO_TEST_CAPS_LATEST("blkdeviotune-max-length");
+ DO_TEST_CAPS_LATEST("throttlefilter");
DO_TEST_CAPS_LATEST("multifunction-pci-device");
--
2.34.1
On Wed, Jun 12, 2024 at 03:02:21 -0700, wucf@linux.ibm.com wrote: > From: Chun Feng Wu <wucf@linux.ibm.com> > > * Add tests for "throttlegroup" > * Add tests for "throttlefilter" > > Signed-off-by: Chun Feng Wu <wucf@linux.ibm.com> > --- > .../throttlefilter.x86_64-latest.args | 43 ++++++++++++ > .../throttlefilter.x86_64-latest.xml | 65 +++++++++++++++++++ > tests/qemuxmlconfdata/throttlefilter.xml | 55 ++++++++++++++++ > tests/qemuxmlconftest.c | 1 + > 4 files changed, 164 insertions(+) > create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args > create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml > create mode 100644 tests/qemuxmlconfdata/throttlefilter.xml [...] > diff --git a/tests/qemuxmlconfdata/throttlefilter.xml b/tests/qemuxmlconfdata/throttlefilter.xml > new file mode 100644 > index 0000000000..10b7d1c01b > --- /dev/null > +++ b/tests/qemuxmlconfdata/throttlefilter.xml > @@ -0,0 +1,55 @@ > +<domain type='qemu'> > + <name>QEMUGuest1</name> > + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> > + <memory unit='KiB'>219100</memory> > + <currentMemory unit='KiB'>219100</currentMemory> > + <vcpu placement='static'>1</vcpu> > + <throttlegroups> > + <throttlegroup> > + <total_bytes_sec>5000</total_bytes_sec> > + <total_iops_sec>6000</total_iops_sec> > + <group_name>limit0</group_name> > + </throttlegroup> > + <throttlegroup> > + <read_bytes_sec>5000</read_bytes_sec> > + <write_bytes_sec>5000</write_bytes_sec> > + <total_iops_sec>7000</total_iops_sec> > + <group_name>limit1</group_name> > + </throttlegroup> > + </throttlegroups> > + <os> > + <type arch='x86_64' 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-system-x86_64</emulator> > + <disk type='block' device='disk'> > + <driver name='qemu' type='qcow2' cache='none'/> > + <source dev='/dev/HostVG/QEMUGuest1'/> > + <target dev='hda' bus='ide'/> > + <throttlefilters> > + <throttlefilter group='limit0'/> > + </throttlefilters> > + <address type='drive' controller='0' bus='0' target='0' unit='0'/> > + </disk> > + <disk type='block' device='disk'> > + <driver name='qemu' type='qcow2' cache='none'/> > + <source dev='/dev/HostVG/QEMUGuest2'/> > + <target dev='hdb' bus='ide'/> > + <throttlefilters> > + <throttlefilter group='limit1'/> Please add also one more complex example of a disk referencing multiple groups. Otherwise this'd be identical to what we already support. For completness you can also add one group that is not used by any disk. > + </throttlefilters> > + <address type='drive' controller='0' bus='0' target='0' unit='1'/> > + </disk> > + <controller type='usb' index='0'/> > + <controller type='ide' index='0'/> > + <controller type='pci' index='0' model='pci-root'/> > + <input type='mouse' bus='ps2'/> > + <input type='keyboard' bus='ps2'/> > + <memballoon model='virtio'/> > + </devices> > +</domain> I also expect at least one negative test case showing how the mixing of throttling via groups and directly you explicitly forbid is handled so that we don't regress in that regard.
© 2016 - 2024 Red Hat, Inc.