On Thu, Nov 04, 2021 at 01:22:51PM +0100, Michal Privoznik wrote: [...] > Michal Prívozník (2): > conf: Introduce TCG domain features > qemu: Generate command line for tb-cache feature > > docs/formatdomain.rst | 11 +++ > docs/schemas/domaincommon.rng | 15 +++- > src/conf/domain_conf.c | 90 +++++++++++++++++++ > src/conf/domain_conf.h | 7 ++ > src/qemu/qemu_command.c | 14 ++- > src/qemu/qemu_validate.c | 11 +++ > ...efault-cpu-tcg-features.x86_64-latest.args | 40 +++++++++ > .../x86_64-default-cpu-tcg-features.xml | 67 ++++++++++++++ > tests/qemuxml2argvtest.c | 1 + > ...default-cpu-tcg-features.x86_64-latest.xml | 1 + > tests/qemuxml2xmltest.c | 1 + > 11 files changed, 256 insertions(+), 2 deletions(-) > create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.x86_64-latest.args > create mode 100644 tests/qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml > create mode 120000 tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml Thanks! Works for me. Tested-by: Kashyap Chamarthy <kchamart@xxxxxxxxxx> I built your patches on top of: $> git describe v7.9.0-55-g20e64dad07 And with "tb-size" 64MiB (65536 KiB), quoting only partial libvirt XML): <domain type='qemu' id='4'> <name>cvm2</name> <uuid>835c272a-ba89-4227-b389-36f7b9d24345</uuid> <memory unit='KiB'>2097152</memory> <currentMemory unit='KiB'>2097152</currentMemory> <vcpu placement='static'>1</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-5.0'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader> <nvram template='/usr/share/edk2/ovmf/OVMF_VARS.fd'>/var/lib/libvirt/qemu/nvram/cvm2_VARS.fd</nvram> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <tcg> <tb-cache unit='KiB'>65536</tb-cache> </tcg> </features> <cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>Nehalem</model> <feature policy='require' name='hypervisor'/> </cpu> [...] </domain> It generates the right QEMU command-line (also partial): /bin/qemu-kvm \ -name guest=cvm2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-4-cvm2/master-key.aes"}' \ -blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF_CODE.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/qemu/nvram/cvm2_VARS.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}' \ -machine pc-i440fx-5.0,usb=off,dump-guest-core=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,memory-backend=pc.ram \ -accel tcg,tb-size=64 \ -cpu Nehalem \ -m 2048 \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":2147483648}' \ [...] -- /kashyap