[virt-tools-list] [virt-install PATCH 1/7] Introduce real-world AMD SEV domain capabilities

Cole Robinson crobinso at redhat.com
Thu Jun 6 20:01:07 UTC 2019


Subject can have 'tests:' prefix, it was a bit unclear otherwise

On 6/6/19 6:00 AM, Erik Skultety wrote:
> Rather than editing existing Intel domain capabilities by hand, use
> capabilities from a real AMD HW. We're later going to use these to fill
> in SEV platform specific data automatically.
> 
> Signed-off-by: Erik Skultety <eskultet at redhat.com>
> ---
>  .../kvm-x86_64-amd-domcaps-q35.xml            | 146 ++++++++++++++++++
>  tests/utils.py                                |   2 +
>  2 files changed, 148 insertions(+)
>  create mode 100644 tests/capabilities-xml/kvm-x86_64-amd-domcaps-q35.xml
> 
> diff --git a/tests/capabilities-xml/kvm-x86_64-amd-domcaps-q35.xml b/tests/capabilities-xml/kvm-x86_64-amd-domcaps-q35.xml

The q35 bit is kinda tangential here. Since the reason we are adding
this is specifically for sev testing, I'd call it

kvm-x86_64-domcaps-amd-sev.xml

> new file mode 100644
> index 00000000..c402464b
> --- /dev/null
> +++ b/tests/capabilities-xml/kvm-x86_64-amd-domcaps-q35.xml
> @@ -0,0 +1,146 @@
> +<domainCapabilities>
> +  <path>/usr/bin/qemu-system-x86_64</path>
> +  <domain>kvm</domain>
> +  <machine>pc-q35-3.0</machine>
> +  <arch>x86_64</arch>
> +  <vcpu max='288'/>
> +  <iothreads supported='yes'/>
> +  <os supported='yes'>
> +    <loader supported='yes'>
> +      <value>/usr/share/edk2/ovmf/OVMF_CODE.fd</value>
> +      <enum name='type'>
> +        <value>rom</value>
> +        <value>pflash</value>
> +      </enum>
> +      <enum name='readonly'>
> +        <value>yes</value>
> +        <value>no</value>
> +      </enum>
> +    </loader>
> +  </os>
> +  <cpu>
> +    <mode name='host-passthrough' supported='yes'/>
> +    <mode name='host-model' supported='yes'>
> +      <model fallback='forbid'>EPYC-IBPB</model>
> +      <vendor>AMD</vendor>
> +      <feature policy='require' name='x2apic'/>
> +      <feature policy='require' name='tsc-deadline'/>
> +      <feature policy='require' name='hypervisor'/>
> +      <feature policy='require' name='tsc_adjust'/>
> +      <feature policy='require' name='cmp_legacy'/>
> +      <feature policy='require' name='perfctr_core'/>
> +      <feature policy='require' name='invtsc'/>
> +      <feature policy='require' name='virt-ssbd'/>
> +      <feature policy='disable' name='monitor'/>
> +    </mode>
> +    <mode name='custom' supported='yes'>
> +      <model usable='yes'>qemu64</model>
> +      <model usable='yes'>qemu32</model>
> +      <model usable='no'>phenom</model>
> +      <model usable='yes'>pentium3</model>
> +      <model usable='yes'>pentium2</model>
> +      <model usable='yes'>pentium</model>
> +      <model usable='no'>n270</model>
> +      <model usable='yes'>kvm64</model>
> +      <model usable='yes'>kvm32</model>
> +      <model usable='no'>coreduo</model>
> +      <model usable='no'>core2duo</model>
> +      <model usable='no'>athlon</model>
> +      <model usable='no'>Westmere-IBRS</model>
> +      <model usable='yes'>Westmere</model>
> +      <model usable='no'>Skylake-Server-IBRS</model>
> +      <model usable='no'>Skylake-Server</model>
> +      <model usable='no'>Skylake-Client-IBRS</model>
> +      <model usable='no'>Skylake-Client</model>
> +      <model usable='no'>SandyBridge-IBRS</model>
> +      <model usable='yes'>SandyBridge</model>
> +      <model usable='yes'>Penryn</model>
> +      <model usable='no'>Opteron_G5</model>
> +      <model usable='no'>Opteron_G4</model>
> +      <model usable='yes'>Opteron_G3</model>
> +      <model usable='yes'>Opteron_G2</model>
> +      <model usable='yes'>Opteron_G1</model>
> +      <model usable='no'>Nehalem-IBRS</model>
> +      <model usable='yes'>Nehalem</model>
> +      <model usable='no'>IvyBridge-IBRS</model>
> +      <model usable='no'>IvyBridge</model>
> +      <model usable='no'>Haswell-noTSX-IBRS</model>
> +      <model usable='no'>Haswell-noTSX</model>
> +      <model usable='no'>Haswell-IBRS</model>
> +      <model usable='no'>Haswell</model>
> +      <model usable='yes'>EPYC-IBPB</model>
> +      <model usable='yes'>EPYC</model>
> +      <model usable='yes'>Conroe</model>
> +      <model usable='no'>Broadwell-noTSX-IBRS</model>
> +      <model usable='no'>Broadwell-noTSX</model>
> +      <model usable='no'>Broadwell-IBRS</model>
> +      <model usable='no'>Broadwell</model>
> +      <model usable='yes'>486</model>
> +    </mode>
> +  </cpu>
> +  <devices>
> +    <disk supported='yes'>
> +      <enum name='diskDevice'>
> +        <value>disk</value>
> +        <value>cdrom</value>
> +        <value>floppy</value>
> +        <value>lun</value>
> +      </enum>
> +      <enum name='bus'>
> +        <value>fdc</value>
> +        <value>scsi</value>
> +        <value>virtio</value>
> +        <value>usb</value>
> +        <value>sata</value>
> +      </enum>
> +    </disk>
> +    <graphics supported='yes'>
> +      <enum name='type'>
> +        <value>sdl</value>
> +        <value>vnc</value>
> +        <value>spice</value>
> +      </enum>
> +    </graphics>
> +    <video supported='yes'>
> +      <enum name='modelType'>
> +        <value>vga</value>
> +        <value>cirrus</value>
> +        <value>vmvga</value>
> +        <value>qxl</value>
> +        <value>virtio</value>
> +      </enum>
> +    </video>
> +    <hostdev supported='yes'>
> +      <enum name='mode'>
> +        <value>subsystem</value>
> +      </enum>
> +      <enum name='startupPolicy'>
> +        <value>default</value>
> +        <value>mandatory</value>
> +        <value>requisite</value>
> +        <value>optional</value>
> +      </enum>
> +      <enum name='subsysType'>
> +        <value>usb</value>
> +        <value>pci</value>
> +        <value>scsi</value>
> +      </enum>
> +      <enum name='capsType'/>
> +      <enum name='pciBackend'>
> +        <value>default</value>
> +        <value>vfio</value>
> +      </enum>
> +    </hostdev>
> +  </devices>
> +  <features>
> +    <gic supported='no'/>
> +    <vmcoreinfo supported='yes'/>
> +    <genid supported='yes'/>
> +    <sev supported='yes'>
> +      <cbitpos>47</cbitpos>
> +      <reducedPhysBits>1</reducedPhysBits>
> +    </sev>
> +  </features>
> +</domainCapabilities>
> +
> +

Extra lines here can be dropped, git am had a warning about it at least.

> diff --git a/tests/utils.py b/tests/utils.py
> index f74d16ce..dc6aecb8 100644
> --- a/tests/utils.py
> +++ b/tests/utils.py
> @@ -74,6 +74,7 @@ class _URIs(object):
>          _uri_kvm = _uri_qemu + _domcaps("kvm-x86_64-domcaps.xml")
>          _uri_kvm_rhel7 = _uri_qemu + _domcaps("kvm-x86_64-rhel7-domcaps.xml")
>          _uri_kvm_q35 = _uri_qemu + _domcaps("kvm-x86_64-domcaps-q35.xml")
> +        _uri_kvm_amd_q35 = _uri_qemu + _domcaps("kvm-x86_64-amd-domcaps-q35.xml")
>          _uri_kvm_aarch64 = _uri_qemu + _domcaps("kvm-aarch64-domcaps.xml")
>          _uri_qemu_riscv64 = _uri_qemu + _domcaps("qemu-riscv64-domcaps.xml")
>  
> @@ -82,6 +83,7 @@ class _URIs(object):
>          self.kvm_nodomcaps = _uri_qemu + _caps("kvm-x86_64.xml")
>          self.kvm_rhel = _uri_kvm_rhel7 + _caps("kvm-x86_64-rhel7.xml")
>          self.kvm_q35 = _uri_kvm_q35 + _caps("kvm-x86_64.xml")
> +        self.kvm_amd_q35 = _uri_kvm_amd_q35 + _caps("kvm-x86_64.xml")
>          self.kvm_session = self.kvm + ",session"
>

I'd call this self.kvm_amd_sev

Thanks,
Cole

>          self.kvm_armv7l = _uri_kvm + _caps("kvm-armv7l.xml")
> 




More information about the virt-tools-list mailing list