mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 07:05:28 +00:00
dd17a4eba8
One of the mitigation methods for TAA[1] is to disable TSX support on the host system. Linux added a mechanism to disable TSX globally through the kernel command line, and many Linux distributions now default to tsx=off. This makes existing CPU models that have HLE and RTM enabled not usable anymore. Add new versions of all CPU models that have the HLE and RTM features enabled, that can be used when TSX is disabled in the host system. On systems disabling the features without those types defined in cpu-maps users end up without modern CPU types in the list of usable CPUs to use in the likes of virsh domcapabilities or tools higher in the stack like virt-manager. This adds: -Cascadelake-Server-noTSX -Icelake-Client-noTSX -Icelake-Server-noTSX -Skylake-Server-noTSX-IBRS -Skylake-Client-noTSX-IBRS Introduced in QEMU by commit v4.2.0-rc2-3-g9ab2237f19 (function) and commit v4.2.0-rc2-4-g02fa60d101 (names) References: [1] TAA, TSX asynchronous Abort: https://software.intel.com/security-software-guidance/insights/deep-dive-intel-transactional-synchronization-extensions-intel-tsx-asynchronous-abort https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html Fixes: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1853200 Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> Message-Id: <20200310104806.2723-2-christian.ehrhardt@canonical.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
198 lines
6.5 KiB
XML
198 lines
6.5 KiB
XML
<domainCapabilities>
|
|
<path>/usr/bin/qemu-system-x86_64</path>
|
|
<domain>qemu</domain>
|
|
<machine>pc-i440fx-5.0</machine>
|
|
<arch>x86_64</arch>
|
|
<vcpu max='255'/>
|
|
<iothreads supported='yes'/>
|
|
<os supported='yes'>
|
|
<enum name='firmware'>
|
|
<value>bios</value>
|
|
<value>efi</value>
|
|
</enum>
|
|
<loader supported='yes'>
|
|
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
|
|
<value>/usr/share/AAVMF/AAVMF32_CODE.fd</value>
|
|
<value>/usr/share/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>
|
|
<enum name='secure'>
|
|
<value>no</value>
|
|
</enum>
|
|
</loader>
|
|
</os>
|
|
<cpu>
|
|
<mode name='host-passthrough' supported='no'/>
|
|
<mode name='host-model' supported='yes'>
|
|
<model fallback='forbid'>EPYC</model>
|
|
<vendor>AMD</vendor>
|
|
<feature policy='require' name='acpi'/>
|
|
<feature policy='require' name='ss'/>
|
|
<feature policy='require' name='hypervisor'/>
|
|
<feature policy='require' name='erms'/>
|
|
<feature policy='require' name='mpx'/>
|
|
<feature policy='require' name='pcommit'/>
|
|
<feature policy='require' name='clwb'/>
|
|
<feature policy='require' name='pku'/>
|
|
<feature policy='require' name='la57'/>
|
|
<feature policy='require' name='3dnowext'/>
|
|
<feature policy='require' name='3dnow'/>
|
|
<feature policy='disable' name='vme'/>
|
|
<feature policy='disable' name='fma'/>
|
|
<feature policy='disable' name='avx'/>
|
|
<feature policy='disable' name='f16c'/>
|
|
<feature policy='disable' name='avx2'/>
|
|
<feature policy='disable' name='rdseed'/>
|
|
<feature policy='disable' name='sha-ni'/>
|
|
<feature policy='disable' name='xsavec'/>
|
|
<feature policy='disable' name='fxsr_opt'/>
|
|
<feature policy='disable' name='misalignsse'/>
|
|
<feature policy='disable' name='3dnowprefetch'/>
|
|
<feature policy='disable' name='osvw'/>
|
|
<feature policy='disable' name='topoext'/>
|
|
</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='yes'>n270</model>
|
|
<model usable='yes'>kvm64</model>
|
|
<model usable='yes'>kvm32</model>
|
|
<model usable='yes'>coreduo</model>
|
|
<model usable='yes'>core2duo</model>
|
|
<model usable='yes'>athlon</model>
|
|
<model usable='no'>Westmere-IBRS</model>
|
|
<model usable='yes'>Westmere</model>
|
|
<model usable='no'>Skylake-Server-noTSX-IBRS</model>
|
|
<model usable='no'>Skylake-Server-IBRS</model>
|
|
<model usable='no'>Skylake-Server</model>
|
|
<model usable='no'>Skylake-Client-noTSX-IBRS</model>
|
|
<model usable='no'>Skylake-Client-IBRS</model>
|
|
<model usable='no'>Skylake-Client</model>
|
|
<model usable='no'>SandyBridge-IBRS</model>
|
|
<model usable='no'>SandyBridge</model>
|
|
<model usable='yes'>Penryn</model>
|
|
<model usable='no'>Opteron_G5</model>
|
|
<model usable='no'>Opteron_G4</model>
|
|
<model usable='no'>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'>Icelake-Server-noTSX</model>
|
|
<model usable='no'>Icelake-Server</model>
|
|
<model usable='no'>Icelake-Client-noTSX</model>
|
|
<model usable='no'>Icelake-Client</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='no'>EPYC-IBPB</model>
|
|
<model usable='no'>EPYC</model>
|
|
<model usable='no'>Dhyana</model>
|
|
<model usable='yes'>Conroe</model>
|
|
<model usable='no'>Cascadelake-Server-noTSX</model>
|
|
<model usable='no'>Cascadelake-Server</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>ide</value>
|
|
<value>fdc</value>
|
|
<value>scsi</value>
|
|
<value>virtio</value>
|
|
<value>usb</value>
|
|
<value>sata</value>
|
|
</enum>
|
|
<enum name='model'>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</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>
|
|
<value>none</value>
|
|
<value>bochs</value>
|
|
<value>ramfb</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>
|
|
<rng supported='yes'>
|
|
<enum name='model'>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</enum>
|
|
<enum name='backendModel'>
|
|
<value>random</value>
|
|
<value>egd</value>
|
|
<value>builtin</value>
|
|
</enum>
|
|
</rng>
|
|
</devices>
|
|
<features>
|
|
<gic supported='no'/>
|
|
<vmcoreinfo supported='yes'/>
|
|
<genid supported='yes'/>
|
|
<backingStoreInput supported='yes'/>
|
|
<backup supported='no'/>
|
|
<sev supported='no'/>
|
|
</features>
|
|
</domainCapabilities>
|