From: Peter Krempa Date: Tue, 16 May 2023 08:22:39 +0000 (+0200) Subject: conf: numa: Allow formatting 'none' values for 'associativity' and 'policy' of cache X-Git-Tag: v9.4.0-rc1~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af621caa6bd479ca7666bcc6254e0043466b7b00;p=thirdparty%2Flibvirt.git conf: numa: Allow formatting 'none' values for 'associativity' and 'policy' of cache The parser makes the values mandatory and also the qemu code implements actions for those values. The formatter skips them though. Since format+parse is used to copy the XML at startup a definition with those values can't be started. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2203709 Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index c2e3045280..be0c4572c5 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -1708,15 +1708,10 @@ virNumaCacheFormat(virBuffer *buf, g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); virBufferAsprintf(&attrBuf, " level='%u'", cache->level); - if (cache->associativity) { - virBufferAsprintf(&attrBuf, " associativity='%s'", - virNumaCacheAssociativityTypeToString(cache->associativity)); - } - - if (cache->policy) { - virBufferAsprintf(&attrBuf, " policy='%s'", - virNumaCachePolicyTypeToString(cache->policy)); - } + virBufferAsprintf(&attrBuf, " associativity='%s'", + virNumaCacheAssociativityTypeToString(cache->associativity)); + virBufferAsprintf(&attrBuf, " policy='%s'", + virNumaCachePolicyTypeToString(cache->policy)); virBufferAsprintf(&childBuf, "\n", diff --git a/tests/qemuxml2argvdata/numatune-hmat-none.x86_64-latest.args b/tests/qemuxml2argvdata/numatune-hmat-none.x86_64-latest.args new file mode 100644 index 0000000000..d61fa1fc70 --- /dev/null +++ b/tests/qemuxml2argvdata/numatune-hmat-none.x86_64-latest.args @@ -0,0 +1,49 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=QEMUGuest,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest/master-key.aes"}' \ +-machine pc,usb=off,dump-guest-core=off,hmat=on,acpi=on \ +-accel tcg \ +-cpu qemu64 \ +-m 12288 \ +-overcommit mem-lock=off \ +-smp 12,sockets=12,cores=1,threads=1 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":2147483648}' \ +-numa node,nodeid=0,cpus=0-3,initiator=0,memdev=ram-node0 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":2147483648}' \ +-numa node,nodeid=1,cpus=4-7,initiator=1,memdev=ram-node1 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node2","size":2147483648}' \ +-numa node,nodeid=2,cpus=8-11,initiator=2,memdev=ram-node2 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node3","size":2147483648}' \ +-numa node,nodeid=3,initiator=0,memdev=ram-node3 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node4","size":2147483648}' \ +-numa node,nodeid=4,initiator=0,memdev=ram-node4 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node5","size":2147483648}' \ +-numa node,nodeid=5,initiator=0,memdev=ram-node5 \ +-numa hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-latency,latency=5 \ +-numa hmat-lb,initiator=0,target=0,hierarchy=first-level,data-type=access-latency,latency=10 \ +-numa hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-bandwidth,bandwidth=204800K \ +-numa hmat-lb,initiator=0,target=0,hierarchy=first-level,data-type=access-bandwidth,bandwidth=208896K \ +-numa hmat-cache,node-id=0,size=10K,level=1,associativity=none,policy=none,line=8 \ +-uuid c7a5fdb2-cdaf-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"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x3"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxml2argvdata/numatune-hmat-none.xml b/tests/qemuxml2argvdata/numatune-hmat-none.xml new file mode 100644 index 0000000000..a848397826 --- /dev/null +++ b/tests/qemuxml2argvdata/numatune-hmat-none.xml @@ -0,0 +1,54 @@ + + QEMUGuest + c7a5fdb2-cdaf-9455-926a-d65c16db1809 + 8388608 + 8388608 + 12 + + hvm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-x86_64 + +
+ + + + +