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(a)redhat.com>
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