mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-22 22:13:18 +00:00
cachetune schema: a looser check for the order of <cache> and <monitor> element
Originally, inside <cputune/cachetune>, it requires the <cache> element to be in the position before <monitor>, and following configuration is not permitted by schema, but it is better to let it be valid. <cputune> <cachetune vcpus='0-1'> <monitor level='3' vcpus='0-1'/> ^ |__ Not permitted originally because it is in the place before <cache> element. <cache id='0' level='3' type='both' size='3' unit='MiB'/> <cache id='1' level='3' type='both' size='3' unit='MiB'/> </cachetune> ... </cputune> And, let schema do more strict check by identifying following configuration to be invalid, due to <cachetune> should contain at least one <cache> or <monitor> element. <cputune> <cachetune vcpus='0-1'> ^ |__ a <cachetune> SHOULD contain at least one <cache> or <monitor> </cachetune> ... </cputune> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Huaqiang <huaqiang.wang@intel.com>
This commit is contained in:
parent
d0431255aa
commit
1d0c3c3a62
@ -980,41 +980,41 @@
|
|||||||
<attribute name="vcpus">
|
<attribute name="vcpus">
|
||||||
<ref name='cpuset'/>
|
<ref name='cpuset'/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<zeroOrMore>
|
<oneOrMore>
|
||||||
<element name="cache">
|
<choice>
|
||||||
<attribute name="id">
|
<element name="cache">
|
||||||
<ref name='unsignedInt'/>
|
<attribute name="id">
|
||||||
</attribute>
|
<ref name='unsignedInt'/>
|
||||||
<attribute name="level">
|
|
||||||
<ref name='unsignedInt'/>
|
|
||||||
</attribute>
|
|
||||||
<attribute name="type">
|
|
||||||
<choice>
|
|
||||||
<value>both</value>
|
|
||||||
<value>code</value>
|
|
||||||
<value>data</value>
|
|
||||||
</choice>
|
|
||||||
</attribute>
|
|
||||||
<attribute name="size">
|
|
||||||
<ref name='unsignedLong'/>
|
|
||||||
</attribute>
|
|
||||||
<optional>
|
|
||||||
<attribute name='unit'>
|
|
||||||
<ref name='unit'/>
|
|
||||||
</attribute>
|
</attribute>
|
||||||
</optional>
|
<attribute name="level">
|
||||||
</element>
|
<ref name='unsignedInt'/>
|
||||||
</zeroOrMore>
|
</attribute>
|
||||||
<zeroOrMore>
|
<attribute name="type">
|
||||||
<element name="monitor">
|
<choice>
|
||||||
<attribute name="level">
|
<value>both</value>
|
||||||
<ref name='unsignedInt'/>
|
<value>code</value>
|
||||||
</attribute>
|
<value>data</value>
|
||||||
<attribute name="vcpus">
|
</choice>
|
||||||
<ref name='cpuset'/>
|
</attribute>
|
||||||
</attribute>
|
<attribute name="size">
|
||||||
</element>
|
<ref name='unsignedLong'/>
|
||||||
</zeroOrMore>
|
</attribute>
|
||||||
|
<optional>
|
||||||
|
<attribute name='unit'>
|
||||||
|
<ref name='unit'/>
|
||||||
|
</attribute>
|
||||||
|
</optional>
|
||||||
|
</element>
|
||||||
|
<element name="monitor">
|
||||||
|
<attribute name="level">
|
||||||
|
<ref name='unsignedInt'/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="vcpus">
|
||||||
|
<ref name='cpuset'/>
|
||||||
|
</attribute>
|
||||||
|
</element>
|
||||||
|
</choice>
|
||||||
|
</oneOrMore>
|
||||||
</element>
|
</element>
|
||||||
</zeroOrMore>
|
</zeroOrMore>
|
||||||
<zeroOrMore>
|
<zeroOrMore>
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<vcpu placement='static'>4</vcpu>
|
<vcpu placement='static'>4</vcpu>
|
||||||
<cputune>
|
<cputune>
|
||||||
<cachetune vcpus='0-1'>
|
<cachetune vcpus='0-1'>
|
||||||
|
<monitor level='3' vcpus='0-1'/>
|
||||||
<cache id='0' level='3' type='both' size='3' unit='MiB'/>
|
<cache id='0' level='3' type='both' size='3' unit='MiB'/>
|
||||||
<cache id='1' level='3' type='both' size='3' unit='MiB'/>
|
<cache id='1' level='3' type='both' size='3' unit='MiB'/>
|
||||||
</cachetune>
|
</cachetune>
|
||||||
|
34
tests/genericxml2xmloutdata/cachetune.xml
Normal file
34
tests/genericxml2xmloutdata/cachetune.xml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<domain type='qemu'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
<memory unit='KiB'>219136</memory>
|
||||||
|
<currentMemory unit='KiB'>219136</currentMemory>
|
||||||
|
<vcpu placement='static'>4</vcpu>
|
||||||
|
<cputune>
|
||||||
|
<cachetune vcpus='0-1'>
|
||||||
|
<cache id='0' level='3' type='both' size='3' unit='MiB'/>
|
||||||
|
<cache id='1' level='3' type='both' size='3' unit='MiB'/>
|
||||||
|
<monitor level='3' vcpus='0-1'/>
|
||||||
|
</cachetune>
|
||||||
|
<cachetune vcpus='3'>
|
||||||
|
<cache id='0' level='3' type='both' size='3' unit='MiB'/>
|
||||||
|
</cachetune>
|
||||||
|
</cputune>
|
||||||
|
<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-system-i386</emulator>
|
||||||
|
<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>
|
@ -161,9 +161,9 @@ mymain(void)
|
|||||||
DO_TEST_FULL("chardev-reconnect-invalid-mode", 0, false,
|
DO_TEST_FULL("chardev-reconnect-invalid-mode", 0, false,
|
||||||
TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_PARSE);
|
TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_PARSE);
|
||||||
|
|
||||||
DO_TEST("cachetune");
|
|
||||||
DO_TEST("cachetune-small");
|
DO_TEST("cachetune-small");
|
||||||
DO_TEST("cachetune-cdp");
|
DO_TEST("cachetune-cdp");
|
||||||
|
DO_TEST_DIFFERENT("cachetune");
|
||||||
DO_TEST_DIFFERENT("cachetune-extra-tunes");
|
DO_TEST_DIFFERENT("cachetune-extra-tunes");
|
||||||
DO_TEST_FULL("cachetune-colliding-allocs", false, true,
|
DO_TEST_FULL("cachetune-colliding-allocs", false, true,
|
||||||
TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_PARSE);
|
TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_PARSE);
|
||||||
|
Loading…
Reference in New Issue
Block a user