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 <kcham...@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

Reply via email to