render / rpms / libvirt

Forked from rpms/libvirt 4 months ago
Clone
b971b8
From 59287d64100517e89dbd3a88af6fec4755ceab42 Mon Sep 17 00:00:00 2001
b971b8
Message-Id: <59287d64100517e89dbd3a88af6fec4755ceab42@dist-git>
b971b8
From: Christian Ehrhardt <christian.ehrhardt@canonical.com>
b971b8
Date: Tue, 26 May 2020 10:58:55 +0200
b971b8
Subject: [PATCH] cpu_map: Add more -noTSX x86 CPU models
b971b8
MIME-Version: 1.0
b971b8
Content-Type: text/plain; charset=UTF-8
b971b8
Content-Transfer-Encoding: 8bit
b971b8
b971b8
One of the mitigation methods for TAA[1] is to disable TSX
b971b8
support on the host system.  Linux added a mechanism to disable
b971b8
TSX globally through the kernel command line, and many Linux
b971b8
distributions now default to tsx=off.  This makes existing CPU
b971b8
models that have HLE and RTM enabled not usable anymore.
b971b8
b971b8
Add new versions of all CPU models that have the HLE and RTM
b971b8
features enabled, that can be used when TSX is disabled in the
b971b8
host system.
b971b8
b971b8
On systems disabling the features without those types defined
b971b8
in cpu-maps users end up without modern CPU types in the list
b971b8
of usable CPUs to use in the likes of virsh domcapabilities
b971b8
or tools higher in the stack like virt-manager.
b971b8
b971b8
This adds:
b971b8
-Cascadelake-Server-noTSX
b971b8
-Icelake-Client-noTSX
b971b8
-Icelake-Server-noTSX
b971b8
-Skylake-Server-noTSX-IBRS
b971b8
-Skylake-Client-noTSX-IBRS
b971b8
b971b8
Introduced in QEMU by commit v4.2.0-rc2-3-g9ab2237f19 (function)
b971b8
                  and commit v4.2.0-rc2-4-g02fa60d101 (names)
b971b8
b971b8
References:
b971b8
b971b8
    [1] TAA, TSX asynchronous Abort:
b971b8
        https://software.intel.com/security-software-guidance/insights/deep-dive-intel-transactional-synchronization-extensions-intel-tsx-asynchronous-abort
b971b8
        https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html
b971b8
b971b8
Fixes: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1853200
b971b8
b971b8
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
b971b8
Message-Id: <20200310104806.2723-2-christian.ehrhardt@canonical.com>
b971b8
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
b971b8
(cherry picked from commit dd17a4eba8618aeb0144f268f2222f65a85425fc)
b971b8
b971b8
https://bugzilla.redhat.com/show_bug.cgi?id=1840008
b971b8
b971b8
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
b971b8
Message-Id: <ab2edc2c9107c87dfa7153b6c54ddd1401c82a4b.1590483392.git.jdenemar@redhat.com>
b971b8
Reviewed-by: Ján Tomko <jtomko@redhat.com>
b971b8
---
b971b8
 src/cpu_map/Makefile.inc.am                   |  5 ++
b971b8
 src/cpu_map/index.xml                         |  5 ++
b971b8
 src/cpu_map/x86_Cascadelake-Server-noTSX.xml  | 78 ++++++++++++++++
b971b8
 src/cpu_map/x86_Icelake-Client-noTSX.xml      | 81 +++++++++++++++++
b971b8
 src/cpu_map/x86_Icelake-Server-noTSX.xml      | 90 +++++++++++++++++++
b971b8
 src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml | 73 +++++++++++++++
b971b8
 src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml | 75 ++++++++++++++++
b971b8
 .../x86_64-cpuid-Core-i7-8550U-guest.xml      |  4 +-
b971b8
 .../x86_64-cpuid-Core-i7-8550U-host.xml       | 11 +--
b971b8
 .../x86_64-cpuid-Core-i7-8550U-json.xml       |  4 +-
b971b8
 .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml  |  5 ++
b971b8
 .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml  |  5 ++
b971b8
 tests/domaincapsdata/qemu_4.2.0.x86_64.xml    |  5 ++
b971b8
 .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml  |  5 ++
b971b8
 .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml  |  5 ++
b971b8
 tests/domaincapsdata/qemu_5.0.0.x86_64.xml    |  5 ++
b971b8
 16 files changed, 440 insertions(+), 16 deletions(-)
b971b8
 create mode 100644 src/cpu_map/x86_Cascadelake-Server-noTSX.xml
b971b8
 create mode 100644 src/cpu_map/x86_Icelake-Client-noTSX.xml
b971b8
 create mode 100644 src/cpu_map/x86_Icelake-Server-noTSX.xml
b971b8
 create mode 100644 src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
b971b8
 create mode 100644 src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
b971b8
b971b8
diff --git a/src/cpu_map/Makefile.inc.am b/src/cpu_map/Makefile.inc.am
b971b8
index e935178304..be64c9a0d4 100644
b971b8
--- a/src/cpu_map/Makefile.inc.am
b971b8
+++ b/src/cpu_map/Makefile.inc.am
b971b8
@@ -20,6 +20,7 @@ cpumap_DATA = \
b971b8
 	cpu_map/x86_Broadwell-noTSX.xml \
b971b8
 	cpu_map/x86_Broadwell-noTSX-IBRS.xml \
b971b8
 	cpu_map/x86_Cascadelake-Server.xml \
b971b8
+	cpu_map/x86_Cascadelake-Server-noTSX.xml \
b971b8
 	cpu_map/x86_Conroe.xml \
b971b8
 	cpu_map/x86_core2duo.xml \
b971b8
 	cpu_map/x86_coreduo.xml \
b971b8
@@ -33,7 +34,9 @@ cpumap_DATA = \
b971b8
 	cpu_map/x86_Haswell-noTSX.xml \
b971b8
 	cpu_map/x86_Haswell-noTSX-IBRS.xml \
b971b8
 	cpu_map/x86_Icelake-Client.xml \
b971b8
+	cpu_map/x86_Icelake-Client-noTSX.xml \
b971b8
 	cpu_map/x86_Icelake-Server.xml \
b971b8
+	cpu_map/x86_Icelake-Server-noTSX.xml \
b971b8
 	cpu_map/x86_IvyBridge.xml \
b971b8
 	cpu_map/x86_IvyBridge-IBRS.xml \
b971b8
 	cpu_map/x86_kvm32.xml \
b971b8
@@ -58,8 +61,10 @@ cpumap_DATA = \
b971b8
 	cpu_map/x86_SandyBridge-IBRS.xml \
b971b8
 	cpu_map/x86_Skylake-Client.xml \
b971b8
 	cpu_map/x86_Skylake-Client-IBRS.xml \
b971b8
+	cpu_map/x86_Skylake-Client-noTSX-IBRS.xml \
b971b8
 	cpu_map/x86_Skylake-Server.xml \
b971b8
 	cpu_map/x86_Skylake-Server-IBRS.xml \
b971b8
+	cpu_map/x86_Skylake-Server-noTSX-IBRS.xml \
b971b8
 	cpu_map/x86_Westmere.xml \
b971b8
 	cpu_map/x86_Westmere-IBRS.xml \
b971b8
 	$(NULL)
b971b8
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
b971b8
index ffb2f6fe1b..50b030de29 100644
b971b8
--- a/src/cpu_map/index.xml
b971b8
+++ b/src/cpu_map/index.xml
b971b8
@@ -44,11 +44,16 @@
b971b8
     <include filename="x86_Broadwell-IBRS.xml"/>
b971b8
     <include filename="x86_Skylake-Client.xml"/>
b971b8
     <include filename="x86_Skylake-Client-IBRS.xml"/>
b971b8
+    <include filename="x86_Skylake-Client-noTSX-IBRS.xml"/>
b971b8
     <include filename="x86_Skylake-Server.xml"/>
b971b8
     <include filename="x86_Skylake-Server-IBRS.xml"/>
b971b8
+    <include filename="x86_Skylake-Server-noTSX-IBRS.xml"/>
b971b8
     <include filename="x86_Cascadelake-Server.xml"/>
b971b8
+    <include filename="x86_Cascadelake-Server-noTSX.xml"/>
b971b8
     <include filename="x86_Icelake-Client.xml"/>
b971b8
+    <include filename="x86_Icelake-Client-noTSX.xml"/>
b971b8
     <include filename="x86_Icelake-Server.xml"/>
b971b8
+    <include filename="x86_Icelake-Server-noTSX.xml"/>
b971b8
 
b971b8
     
b971b8
     <include filename="x86_athlon.xml"/>
b971b8
diff --git a/src/cpu_map/x86_Cascadelake-Server-noTSX.xml b/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
b971b8
new file mode 100644
b971b8
index 0000000000..d24415ebce
b971b8
--- /dev/null
b971b8
+++ b/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
b971b8
@@ -0,0 +1,78 @@
b971b8
+<cpus>
b971b8
+  <model name='Cascadelake-Server-noTSX'>
b971b8
+    <signature family='6' model='85'/> 
b971b8
+    <vendor name='Intel'/>
b971b8
+    <feature name='3dnowprefetch'/>
b971b8
+    <feature name='abm'/>
b971b8
+    <feature name='adx'/>
b971b8
+    <feature name='aes'/>
b971b8
+    <feature name='apic'/>
b971b8
+    <feature name='arat'/>
b971b8
+    <feature name='avx'/>
b971b8
+    <feature name='avx2'/>
b971b8
+    <feature name='avx512bw'/>
b971b8
+    <feature name='avx512cd'/>
b971b8
+    <feature name='avx512dq'/>
b971b8
+    <feature name='avx512f'/>
b971b8
+    <feature name='avx512vl'/>
b971b8
+    <feature name='avx512vnni'/>
b971b8
+    <feature name='bmi1'/>
b971b8
+    <feature name='bmi2'/>
b971b8
+    <feature name='clflush'/>
b971b8
+    <feature name='clflushopt'/>
b971b8
+    <feature name='clwb'/>
b971b8
+    <feature name='cmov'/>
b971b8
+    <feature name='cx16'/>
b971b8
+    <feature name='cx8'/>
b971b8
+    <feature name='de'/>
b971b8
+    <feature name='erms'/>
b971b8
+    <feature name='f16c'/>
b971b8
+    <feature name='fma'/>
b971b8
+    <feature name='fpu'/>
b971b8
+    <feature name='fsgsbase'/>
b971b8
+    <feature name='fxsr'/>
b971b8
+    <feature name='invpcid'/>
b971b8
+    <feature name='lahf_lm'/>
b971b8
+    <feature name='lm'/>
b971b8
+    <feature name='mca'/>
b971b8
+    <feature name='mce'/>
b971b8
+    <feature name='mmx'/>
b971b8
+    <feature name='movbe'/>
b971b8
+    <feature name='mpx'/>
b971b8
+    <feature name='msr'/>
b971b8
+    <feature name='mtrr'/>
b971b8
+    <feature name='nx'/>
b971b8
+    <feature name='pae'/>
b971b8
+    <feature name='pat'/>
b971b8
+    <feature name='pcid'/>
b971b8
+    <feature name='pclmuldq'/>
b971b8
+    <feature name='pdpe1gb'/>
b971b8
+    <feature name='pge'/>
b971b8
+    <feature name='pni'/>
b971b8
+    <feature name='popcnt'/>
b971b8
+    <feature name='pse'/>
b971b8
+    <feature name='pse36'/>
b971b8
+    <feature name='rdrand'/>
b971b8
+    <feature name='rdseed'/>
b971b8
+    <feature name='rdtscp'/>
b971b8
+    <feature name='sep'/>
b971b8
+    <feature name='smap'/>
b971b8
+    <feature name='smep'/>
b971b8
+    <feature name='spec-ctrl'/>
b971b8
+    <feature name='ssbd'/>
b971b8
+    <feature name='sse'/>
b971b8
+    <feature name='sse2'/>
b971b8
+    <feature name='sse4.1'/>
b971b8
+    <feature name='sse4.2'/>
b971b8
+    <feature name='ssse3'/>
b971b8
+    <feature name='syscall'/>
b971b8
+    <feature name='tsc'/>
b971b8
+    <feature name='tsc-deadline'/>
b971b8
+    <feature name='vme'/>
b971b8
+    <feature name='x2apic'/>
b971b8
+    <feature name='xgetbv1'/>
b971b8
+    <feature name='xsave'/>
b971b8
+    <feature name='xsavec'/>
b971b8
+    <feature name='xsaveopt'/>
b971b8
+  </model>
b971b8
+</cpus>
b971b8
diff --git a/src/cpu_map/x86_Icelake-Client-noTSX.xml b/src/cpu_map/x86_Icelake-Client-noTSX.xml
b971b8
new file mode 100644
b971b8
index 0000000000..cd51881f40
b971b8
--- /dev/null
b971b8
+++ b/src/cpu_map/x86_Icelake-Client-noTSX.xml
b971b8
@@ -0,0 +1,81 @@
b971b8
+<cpus>
b971b8
+  <model name='Icelake-Client-noTSX'>
b971b8
+    <signature family='6' model='126'/> 
b971b8
+    <vendor name='Intel'/>
b971b8
+    <feature name='3dnowprefetch'/>
b971b8
+    <feature name='abm'/>
b971b8
+    <feature name='adx'/>
b971b8
+    <feature name='aes'/>
b971b8
+    <feature name='apic'/>
b971b8
+    <feature name='arat'/>
b971b8
+    <feature name='avx'/>
b971b8
+    <feature name='avx2'/>
b971b8
+    <feature name='avx512-vpopcntdq'/>
b971b8
+    <feature name='avx512bitalg'/>
b971b8
+    <feature name='avx512vbmi'/>
b971b8
+    <feature name='avx512vbmi2'/>
b971b8
+    <feature name='avx512vnni'/>
b971b8
+    <feature name='bmi1'/>
b971b8
+    <feature name='bmi2'/>
b971b8
+    <feature name='clflush'/>
b971b8
+    <feature name='cmov'/>
b971b8
+    <feature name='cx16'/>
b971b8
+    <feature name='cx8'/>
b971b8
+    <feature name='de'/>
b971b8
+    <feature name='erms'/>
b971b8
+    <feature name='f16c'/>
b971b8
+    <feature name='fma'/>
b971b8
+    <feature name='fpu'/>
b971b8
+    <feature name='fsgsbase'/>
b971b8
+    <feature name='fxsr'/>
b971b8
+    <feature name='gfni'/>
b971b8
+    <feature name='intel-pt'/>
b971b8
+    <feature name='invpcid'/>
b971b8
+    <feature name='lahf_lm'/>
b971b8
+    <feature name='lm'/>
b971b8
+    <feature name='mca'/>
b971b8
+    <feature name='mce'/>
b971b8
+    <feature name='mmx'/>
b971b8
+    <feature name='movbe'/>
b971b8
+    <feature name='mpx'/>
b971b8
+    <feature name='msr'/>
b971b8
+    <feature name='mtrr'/>
b971b8
+    <feature name='nx'/>
b971b8
+    <feature name='pae'/>
b971b8
+    <feature name='pat'/>
b971b8
+    <feature name='pcid'/>
b971b8
+    <feature name='pclmuldq'/>
b971b8
+    <feature name='pge'/>
b971b8
+    <feature name='pku'/>
b971b8
+    <feature name='pni'/>
b971b8
+    <feature name='popcnt'/>
b971b8
+    <feature name='pse'/>
b971b8
+    <feature name='pse36'/>
b971b8
+    <feature name='rdrand'/>
b971b8
+    <feature name='rdseed'/>
b971b8
+    <feature name='rdtscp'/>
b971b8
+    <feature name='sep'/>
b971b8
+    <feature name='smap'/>
b971b8
+    <feature name='smep'/>
b971b8
+    <feature name='spec-ctrl'/>
b971b8
+    <feature name='ssbd'/>
b971b8
+    <feature name='sse'/>
b971b8
+    <feature name='sse2'/>
b971b8
+    <feature name='sse4.1'/>
b971b8
+    <feature name='sse4.2'/>
b971b8
+    <feature name='ssse3'/>
b971b8
+    <feature name='syscall'/>
b971b8
+    <feature name='tsc'/>
b971b8
+    <feature name='tsc-deadline'/>
b971b8
+    <feature name='umip'/>
b971b8
+    <feature name='vaes'/>
b971b8
+    <feature name='vme'/>
b971b8
+    <feature name='vpclmulqdq'/>
b971b8
+    <feature name='wbnoinvd'/>
b971b8
+    <feature name='x2apic'/>
b971b8
+    <feature name='xgetbv1'/>
b971b8
+    <feature name='xsave'/>
b971b8
+    <feature name='xsavec'/>
b971b8
+    <feature name='xsaveopt'/>
b971b8
+  </model>
b971b8
+</cpus>
b971b8
diff --git a/src/cpu_map/x86_Icelake-Server-noTSX.xml b/src/cpu_map/x86_Icelake-Server-noTSX.xml
b971b8
new file mode 100644
b971b8
index 0000000000..538c656712
b971b8
--- /dev/null
b971b8
+++ b/src/cpu_map/x86_Icelake-Server-noTSX.xml
b971b8
@@ -0,0 +1,90 @@
b971b8
+<cpus>
b971b8
+  <model name='Icelake-Server-noTSX'>
b971b8
+    <signature family='6' model='134'/> 
b971b8
+    <vendor name='Intel'/>
b971b8
+    <feature name='3dnowprefetch'/>
b971b8
+    <feature name='abm'/>
b971b8
+    <feature name='adx'/>
b971b8
+    <feature name='aes'/>
b971b8
+    <feature name='apic'/>
b971b8
+    <feature name='arat'/>
b971b8
+    <feature name='avx'/>
b971b8
+    <feature name='avx2'/>
b971b8
+    <feature name='avx512-vpopcntdq'/>
b971b8
+    <feature name='avx512bitalg'/>
b971b8
+    <feature name='avx512bw'/>
b971b8
+    <feature name='avx512cd'/>
b971b8
+    <feature name='avx512dq'/>
b971b8
+    <feature name='avx512f'/>
b971b8
+    <feature name='avx512vbmi'/>
b971b8
+    <feature name='avx512vbmi2'/>
b971b8
+    <feature name='avx512vl'/>
b971b8
+    <feature name='avx512vnni'/>
b971b8
+    <feature name='bmi1'/>
b971b8
+    <feature name='bmi2'/>
b971b8
+    <feature name='clflush'/>
b971b8
+    <feature name='clflushopt'/>
b971b8
+    <feature name='clwb'/>
b971b8
+    <feature name='cmov'/>
b971b8
+    <feature name='cx16'/>
b971b8
+    <feature name='cx8'/>
b971b8
+    <feature name='de'/>
b971b8
+    <feature name='erms'/>
b971b8
+    <feature name='f16c'/>
b971b8
+    <feature name='fma'/>
b971b8
+    <feature name='fpu'/>
b971b8
+    <feature name='fsgsbase'/>
b971b8
+    <feature name='fxsr'/>
b971b8
+    <feature name='gfni'/>
b971b8
+    <feature name='intel-pt'/>
b971b8
+    <feature name='invpcid'/>
b971b8
+    <feature name='la57'/>
b971b8
+    <feature name='lahf_lm'/>
b971b8
+    <feature name='lm'/>
b971b8
+    <feature name='mca'/>
b971b8
+    <feature name='mce'/>
b971b8
+    <feature name='mmx'/>
b971b8
+    <feature name='movbe'/>
b971b8
+    <feature name='mpx'/>
b971b8
+    <feature name='msr'/>
b971b8
+    <feature name='mtrr'/>
b971b8
+    <feature name='nx'/>
b971b8
+    <feature name='pae'/>
b971b8
+    <feature name='pat'/>
b971b8
+    <feature name='pcid'/>
b971b8
+    <feature name='pclmuldq'/>
b971b8
+    <feature name='pdpe1gb'/>
b971b8
+    <feature name='pge'/>
b971b8
+    <feature name='pku'/>
b971b8
+    <feature name='pni'/>
b971b8
+    <feature name='popcnt'/>
b971b8
+    <feature name='pse'/>
b971b8
+    <feature name='pse36'/>
b971b8
+    <feature name='rdrand'/>
b971b8
+    <feature name='rdseed'/>
b971b8
+    <feature name='rdtscp'/>
b971b8
+    <feature name='sep'/>
b971b8
+    <feature name='smap'/>
b971b8
+    <feature name='smep'/>
b971b8
+    <feature name='spec-ctrl'/>
b971b8
+    <feature name='ssbd'/>
b971b8
+    <feature name='sse'/>
b971b8
+    <feature name='sse2'/>
b971b8
+    <feature name='sse4.1'/>
b971b8
+    <feature name='sse4.2'/>
b971b8
+    <feature name='ssse3'/>
b971b8
+    <feature name='syscall'/>
b971b8
+    <feature name='tsc'/>
b971b8
+    <feature name='tsc-deadline'/>
b971b8
+    <feature name='umip'/>
b971b8
+    <feature name='vaes'/>
b971b8
+    <feature name='vme'/>
b971b8
+    <feature name='vpclmulqdq'/>
b971b8
+    <feature name='wbnoinvd'/>
b971b8
+    <feature name='x2apic'/>
b971b8
+    <feature name='xgetbv1'/>
b971b8
+    <feature name='xsave'/>
b971b8
+    <feature name='xsavec'/>
b971b8
+    <feature name='xsaveopt'/>
b971b8
+  </model>
b971b8
+</cpus>
b971b8
diff --git a/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml b/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
b971b8
new file mode 100644
b971b8
index 0000000000..3d2976692f
b971b8
--- /dev/null
b971b8
+++ b/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
b971b8
@@ -0,0 +1,73 @@
b971b8
+<cpus>
b971b8
+  <model name='Skylake-Client-noTSX-IBRS'>
b971b8
+    <signature family='6' model='94'/> 
b971b8
+    <signature family='6' model='78'/> 
b971b8
+    
b971b8
+         but we don't have specific models for them. -->
b971b8
+    <signature family='6' model='142'/> 
b971b8
+    <signature family='6' model='158'/> 
b971b8
+    <vendor name='Intel'/>
b971b8
+    <feature name='3dnowprefetch'/>
b971b8
+    <feature name='abm'/>
b971b8
+    <feature name='adx'/>
b971b8
+    <feature name='aes'/>
b971b8
+    <feature name='apic'/>
b971b8
+    <feature name='arat'/>
b971b8
+    <feature name='avx'/>
b971b8
+    <feature name='avx2'/>
b971b8
+    <feature name='bmi1'/>
b971b8
+    <feature name='bmi2'/>
b971b8
+    <feature name='clflush'/>
b971b8
+    <feature name='cmov'/>
b971b8
+    <feature name='cx16'/>
b971b8
+    <feature name='cx8'/>
b971b8
+    <feature name='de'/>
b971b8
+    <feature name='erms'/>
b971b8
+    <feature name='f16c'/>
b971b8
+    <feature name='fma'/>
b971b8
+    <feature name='fpu'/>
b971b8
+    <feature name='fsgsbase'/>
b971b8
+    <feature name='fxsr'/>
b971b8
+    <feature name='invpcid'/>
b971b8
+    <feature name='lahf_lm'/>
b971b8
+    <feature name='lm'/>
b971b8
+    <feature name='mca'/>
b971b8
+    <feature name='mce'/>
b971b8
+    <feature name='mmx'/>
b971b8
+    <feature name='movbe'/>
b971b8
+    <feature name='mpx'/>
b971b8
+    <feature name='msr'/>
b971b8
+    <feature name='mtrr'/>
b971b8
+    <feature name='nx'/>
b971b8
+    <feature name='pae'/>
b971b8
+    <feature name='pat'/>
b971b8
+    <feature name='pcid'/>
b971b8
+    <feature name='pclmuldq'/>
b971b8
+    <feature name='pge'/>
b971b8
+    <feature name='pni'/>
b971b8
+    <feature name='popcnt'/>
b971b8
+    <feature name='pse'/>
b971b8
+    <feature name='pse36'/>
b971b8
+    <feature name='rdrand'/>
b971b8
+    <feature name='rdseed'/>
b971b8
+    <feature name='rdtscp'/>
b971b8
+    <feature name='sep'/>
b971b8
+    <feature name='smap'/>
b971b8
+    <feature name='smep'/>
b971b8
+    <feature name='spec-ctrl'/>
b971b8
+    <feature name='sse'/>
b971b8
+    <feature name='sse2'/>
b971b8
+    <feature name='sse4.1'/>
b971b8
+    <feature name='sse4.2'/>
b971b8
+    <feature name='ssse3'/>
b971b8
+    <feature name='syscall'/>
b971b8
+    <feature name='tsc'/>
b971b8
+    <feature name='tsc-deadline'/>
b971b8
+    <feature name='vme'/>
b971b8
+    <feature name='x2apic'/>
b971b8
+    <feature name='xgetbv1'/>
b971b8
+    <feature name='xsave'/>
b971b8
+    <feature name='xsavec'/>
b971b8
+    <feature name='xsaveopt'/>
b971b8
+  </model>
b971b8
+</cpus>
b971b8
diff --git a/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml b/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
b971b8
new file mode 100644
b971b8
index 0000000000..455a072119
b971b8
--- /dev/null
b971b8
+++ b/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
b971b8
@@ -0,0 +1,75 @@
b971b8
+<cpus>
b971b8
+  <model name='Skylake-Server-noTSX-IBRS'>
b971b8
+    <signature family='6' model='85'/> 
b971b8
+    <vendor name='Intel'/>
b971b8
+    <feature name='3dnowprefetch'/>
b971b8
+    <feature name='abm'/>
b971b8
+    <feature name='adx'/>
b971b8
+    <feature name='aes'/>
b971b8
+    <feature name='apic'/>
b971b8
+    <feature name='arat'/>
b971b8
+    <feature name='avx'/>
b971b8
+    <feature name='avx2'/>
b971b8
+    <feature name='avx512bw'/>
b971b8
+    <feature name='avx512cd'/>
b971b8
+    <feature name='avx512dq'/>
b971b8
+    <feature name='avx512f'/>
b971b8
+    <feature name='avx512vl'/>
b971b8
+    <feature name='bmi1'/>
b971b8
+    <feature name='bmi2'/>
b971b8
+    <feature name='clflush'/>
b971b8
+    <feature name='clwb'/>
b971b8
+    <feature name='cmov'/>
b971b8
+    <feature name='cx16'/>
b971b8
+    <feature name='cx8'/>
b971b8
+    <feature name='de'/>
b971b8
+    <feature name='erms'/>
b971b8
+    <feature name='f16c'/>
b971b8
+    <feature name='fma'/>
b971b8
+    <feature name='fpu'/>
b971b8
+    <feature name='fsgsbase'/>
b971b8
+    <feature name='fxsr'/>
b971b8
+    <feature name='invpcid'/>
b971b8
+    <feature name='lahf_lm'/>
b971b8
+    <feature name='lm'/>
b971b8
+    <feature name='mca'/>
b971b8
+    <feature name='mce'/>
b971b8
+    <feature name='mmx'/>
b971b8
+    <feature name='movbe'/>
b971b8
+    <feature name='mpx'/>
b971b8
+    <feature name='msr'/>
b971b8
+    <feature name='mtrr'/>
b971b8
+    <feature name='nx'/>
b971b8
+    <feature name='pae'/>
b971b8
+    <feature name='pat'/>
b971b8
+    <feature name='pcid'/>
b971b8
+    <feature name='pclmuldq'/>
b971b8
+    <feature name='pdpe1gb'/>
b971b8
+    <feature name='pge'/>
b971b8
+    <feature name='pni'/>
b971b8
+    <feature name='popcnt'/>
b971b8
+    <feature name='pse'/>
b971b8
+    <feature name='pse36'/>
b971b8
+    <feature name='rdrand'/>
b971b8
+    <feature name='rdseed'/>
b971b8
+    <feature name='rdtscp'/>
b971b8
+    <feature name='sep'/>
b971b8
+    <feature name='smap'/>
b971b8
+    <feature name='smep'/>
b971b8
+    <feature name='spec-ctrl'/>
b971b8
+    <feature name='sse'/>
b971b8
+    <feature name='sse2'/>
b971b8
+    <feature name='sse4.1'/>
b971b8
+    <feature name='sse4.2'/>
b971b8
+    <feature name='ssse3'/>
b971b8
+    <feature name='syscall'/>
b971b8
+    <feature name='tsc'/>
b971b8
+    <feature name='tsc-deadline'/>
b971b8
+    <feature name='vme'/>
b971b8
+    <feature name='x2apic'/>
b971b8
+    <feature name='xgetbv1'/>
b971b8
+    <feature name='xsave'/>
b971b8
+    <feature name='xsavec'/>
b971b8
+    <feature name='xsaveopt'/>
b971b8
+  </model>
b971b8
+</cpus>
b971b8
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
b971b8
index 92404e4d03..e03c4a06ba 100644
b971b8
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
b971b8
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
b971b8
@@ -1,5 +1,5 @@
b971b8
 <cpu mode='custom' match='exact'>
b971b8
-  <model fallback='forbid'>Skylake-Client-IBRS</model>
b971b8
+  <model fallback='forbid'>Skylake-Client-noTSX-IBRS</model>
b971b8
   <vendor>Intel</vendor>
b971b8
   <feature policy='require' name='ds'/>
b971b8
   <feature policy='require' name='acpi'/>
b971b8
@@ -26,6 +26,4 @@
b971b8
   <feature policy='require' name='pdpe1gb'/>
b971b8
   <feature policy='require' name='invtsc'/>
b971b8
   <feature policy='require' name='skip-l1dfl-vmentry'/>
b971b8
-  <feature policy='disable' name='hle'/>
b971b8
-  <feature policy='disable' name='rtm'/>
b971b8
 </cpu>
b971b8
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
b971b8
index 808a8ff969..7f6fe2eac3 100644
b971b8
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
b971b8
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
b971b8
@@ -1,8 +1,7 @@
b971b8
 <cpu>
b971b8
   <arch>x86_64</arch>
b971b8
-  <model>Broadwell-noTSX-IBRS</model>
b971b8
+  <model>Skylake-Client-noTSX-IBRS</model>
b971b8
   <vendor>Intel</vendor>
b971b8
-  <feature name='vme'/>
b971b8
   <feature name='ds'/>
b971b8
   <feature name='acpi'/>
b971b8
   <feature name='ss'/>
b971b8
@@ -18,22 +17,14 @@
b971b8
   <feature name='xtpr'/>
b971b8
   <feature name='pdcm'/>
b971b8
   <feature name='osxsave'/>
b971b8
-  <feature name='f16c'/>
b971b8
-  <feature name='rdrand'/>
b971b8
-  <feature name='arat'/>
b971b8
   <feature name='tsc_adjust'/>
b971b8
-  <feature name='mpx'/>
b971b8
   <feature name='clflushopt'/>
b971b8
   <feature name='intel-pt'/>
b971b8
   <feature name='md-clear'/>
b971b8
   <feature name='stibp'/>
b971b8
   <feature name='ssbd'/>
b971b8
-  <feature name='xsaveopt'/>
b971b8
-  <feature name='xsavec'/>
b971b8
-  <feature name='xgetbv1'/>
b971b8
   <feature name='xsaves'/>
b971b8
   <feature name='pdpe1gb'/>
b971b8
-  <feature name='abm'/>
b971b8
   <feature name='invtsc'/>
b971b8
   <feature name='skip-l1dfl-vmentry'/>
b971b8
 </cpu>
b971b8
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
b971b8
index 645c0934c2..3d8e6775bf 100644
b971b8
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
b971b8
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
b971b8
@@ -1,5 +1,5 @@
b971b8
 <cpu mode='custom' match='exact'>
b971b8
-  <model fallback='forbid'>Skylake-Client-IBRS</model>
b971b8
+  <model fallback='forbid'>Skylake-Client-noTSX-IBRS</model>
b971b8
   <vendor>Intel</vendor>
b971b8
   <feature policy='require' name='ss'/>
b971b8
   <feature policy='require' name='vmx'/>
b971b8
@@ -14,6 +14,4 @@
b971b8
   <feature policy='require' name='xsaves'/>
b971b8
   <feature policy='require' name='pdpe1gb'/>
b971b8
   <feature policy='require' name='skip-l1dfl-vmentry'/>
b971b8
-  <feature policy='disable' name='hle'/>
b971b8
-  <feature policy='disable' name='rtm'/>
b971b8
 </cpu>
b971b8
diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
b971b8
index c4c6bfb564..e257657981 100644
b971b8
--- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
b971b8
+++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
b971b8
@@ -63,8 +63,10 @@
b971b8
       <model usable='no'>athlon</model>
b971b8
       <model usable='yes'>Westmere-IBRS</model>
b971b8
       <model usable='yes'>Westmere</model>
b971b8
+      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server</model>
b971b8
+      <model usable='yes'>Skylake-Client-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client</model>
b971b8
       <model usable='yes'>SandyBridge-IBRS</model>
b971b8
@@ -79,7 +81,9 @@
b971b8
       <model usable='yes'>Nehalem</model>
b971b8
       <model usable='yes'>IvyBridge-IBRS</model>
b971b8
       <model usable='yes'>IvyBridge</model>
b971b8
+      <model usable='no'>Icelake-Server-noTSX</model>
b971b8
       <model usable='no'>Icelake-Server</model>
b971b8
+      <model usable='no'>Icelake-Client-noTSX</model>
b971b8
       <model usable='no'>Icelake-Client</model>
b971b8
       <model usable='yes'>Haswell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Haswell-noTSX</model>
b971b8
@@ -89,6 +93,7 @@
b971b8
       <model usable='no'>EPYC</model>
b971b8
       <model usable='no'>Dhyana</model>
b971b8
       <model usable='yes'>Conroe</model>
b971b8
+      <model usable='no'>Cascadelake-Server-noTSX</model>
b971b8
       <model usable='no'>Cascadelake-Server</model>
b971b8
       <model usable='yes'>Broadwell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Broadwell-noTSX</model>
b971b8
diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
b971b8
index a7f8d9c5ee..c762b0b600 100644
b971b8
--- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
b971b8
+++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
b971b8
@@ -73,8 +73,10 @@
b971b8
       <model usable='yes'>athlon</model>
b971b8
       <model usable='no'>Westmere-IBRS</model>
b971b8
       <model usable='no'>Westmere</model>
b971b8
+      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server</model>
b971b8
+      <model usable='no'>Skylake-Client-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Client-IBRS</model>
b971b8
       <model usable='no'>Skylake-Client</model>
b971b8
       <model usable='no'>SandyBridge-IBRS</model>
b971b8
@@ -89,7 +91,9 @@
b971b8
       <model usable='no'>Nehalem</model>
b971b8
       <model usable='no'>IvyBridge-IBRS</model>
b971b8
       <model usable='no'>IvyBridge</model>
b971b8
+      <model usable='no'>Icelake-Server-noTSX</model>
b971b8
       <model usable='no'>Icelake-Server</model>
b971b8
+      <model usable='no'>Icelake-Client-noTSX</model>
b971b8
       <model usable='no'>Icelake-Client</model>
b971b8
       <model usable='no'>Haswell-noTSX-IBRS</model>
b971b8
       <model usable='no'>Haswell-noTSX</model>
b971b8
@@ -99,6 +103,7 @@
b971b8
       <model usable='no'>EPYC</model>
b971b8
       <model usable='no'>Dhyana</model>
b971b8
       <model usable='yes'>Conroe</model>
b971b8
+      <model usable='no'>Cascadelake-Server-noTSX</model>
b971b8
       <model usable='no'>Cascadelake-Server</model>
b971b8
       <model usable='no'>Broadwell-noTSX-IBRS</model>
b971b8
       <model usable='no'>Broadwell-noTSX</model>
b971b8
diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
b971b8
index f0e0f182a4..2918ba9715 100644
b971b8
--- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
b971b8
+++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
b971b8
@@ -62,8 +62,10 @@
b971b8
       <model usable='no'>athlon</model>
b971b8
       <model usable='yes'>Westmere-IBRS</model>
b971b8
       <model usable='yes'>Westmere</model>
b971b8
+      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server</model>
b971b8
+      <model usable='yes'>Skylake-Client-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client</model>
b971b8
       <model usable='yes'>SandyBridge-IBRS</model>
b971b8
@@ -78,7 +80,9 @@
b971b8
       <model usable='yes'>Nehalem</model>
b971b8
       <model usable='yes'>IvyBridge-IBRS</model>
b971b8
       <model usable='yes'>IvyBridge</model>
b971b8
+      <model usable='no'>Icelake-Server-noTSX</model>
b971b8
       <model usable='no'>Icelake-Server</model>
b971b8
+      <model usable='no'>Icelake-Client-noTSX</model>
b971b8
       <model usable='no'>Icelake-Client</model>
b971b8
       <model usable='yes'>Haswell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Haswell-noTSX</model>
b971b8
@@ -88,6 +92,7 @@
b971b8
       <model usable='no'>EPYC</model>
b971b8
       <model usable='no'>Dhyana</model>
b971b8
       <model usable='yes'>Conroe</model>
b971b8
+      <model usable='no'>Cascadelake-Server-noTSX</model>
b971b8
       <model usable='no'>Cascadelake-Server</model>
b971b8
       <model usable='yes'>Broadwell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Broadwell-noTSX</model>
b971b8
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
b971b8
index b635d573ef..7b2a929738 100644
b971b8
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
b971b8
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
b971b8
@@ -63,8 +63,10 @@
b971b8
       <model usable='no'>athlon</model>
b971b8
       <model usable='yes'>Westmere-IBRS</model>
b971b8
       <model usable='yes'>Westmere</model>
b971b8
+      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server</model>
b971b8
+      <model usable='yes'>Skylake-Client-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client</model>
b971b8
       <model usable='yes'>SandyBridge-IBRS</model>
b971b8
@@ -79,7 +81,9 @@
b971b8
       <model usable='yes'>Nehalem</model>
b971b8
       <model usable='yes'>IvyBridge-IBRS</model>
b971b8
       <model usable='yes'>IvyBridge</model>
b971b8
+      <model usable='no'>Icelake-Server-noTSX</model>
b971b8
       <model usable='no'>Icelake-Server</model>
b971b8
+      <model usable='no'>Icelake-Client-noTSX</model>
b971b8
       <model usable='no'>Icelake-Client</model>
b971b8
       <model usable='yes'>Haswell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Haswell-noTSX</model>
b971b8
@@ -89,6 +93,7 @@
b971b8
       <model usable='no'>EPYC</model>
b971b8
       <model usable='no'>Dhyana</model>
b971b8
       <model usable='yes'>Conroe</model>
b971b8
+      <model usable='no'>Cascadelake-Server-noTSX</model>
b971b8
       <model usable='no'>Cascadelake-Server</model>
b971b8
       <model usable='yes'>Broadwell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Broadwell-noTSX</model>
b971b8
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
b971b8
index 0fbc632267..d634803b29 100644
b971b8
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
b971b8
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
b971b8
@@ -72,8 +72,10 @@
b971b8
       <model usable='yes'>athlon</model>
b971b8
       <model usable='no'>Westmere-IBRS</model>
b971b8
       <model usable='yes'>Westmere</model>
b971b8
+      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server</model>
b971b8
+      <model usable='no'>Skylake-Client-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Client-IBRS</model>
b971b8
       <model usable='no'>Skylake-Client</model>
b971b8
       <model usable='no'>SandyBridge-IBRS</model>
b971b8
@@ -88,7 +90,9 @@
b971b8
       <model usable='yes'>Nehalem</model>
b971b8
       <model usable='no'>IvyBridge-IBRS</model>
b971b8
       <model usable='no'>IvyBridge</model>
b971b8
+      <model usable='no'>Icelake-Server-noTSX</model>
b971b8
       <model usable='no'>Icelake-Server</model>
b971b8
+      <model usable='no'>Icelake-Client-noTSX</model>
b971b8
       <model usable='no'>Icelake-Client</model>
b971b8
       <model usable='no'>Haswell-noTSX-IBRS</model>
b971b8
       <model usable='no'>Haswell-noTSX</model>
b971b8
@@ -98,6 +102,7 @@
b971b8
       <model usable='no'>EPYC</model>
b971b8
       <model usable='no'>Dhyana</model>
b971b8
       <model usable='yes'>Conroe</model>
b971b8
+      <model usable='no'>Cascadelake-Server-noTSX</model>
b971b8
       <model usable='no'>Cascadelake-Server</model>
b971b8
       <model usable='no'>Broadwell-noTSX-IBRS</model>
b971b8
       <model usable='no'>Broadwell-noTSX</model>
b971b8
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
b971b8
index 27f76a8a5e..7609d49020 100644
b971b8
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
b971b8
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
b971b8
@@ -62,8 +62,10 @@
b971b8
       <model usable='no'>athlon</model>
b971b8
       <model usable='yes'>Westmere-IBRS</model>
b971b8
       <model usable='yes'>Westmere</model>
b971b8
+      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server-IBRS</model>
b971b8
       <model usable='no'>Skylake-Server</model>
b971b8
+      <model usable='yes'>Skylake-Client-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client-IBRS</model>
b971b8
       <model usable='yes'>Skylake-Client</model>
b971b8
       <model usable='yes'>SandyBridge-IBRS</model>
b971b8
@@ -78,7 +80,9 @@
b971b8
       <model usable='yes'>Nehalem</model>
b971b8
       <model usable='yes'>IvyBridge-IBRS</model>
b971b8
       <model usable='yes'>IvyBridge</model>
b971b8
+      <model usable='no'>Icelake-Server-noTSX</model>
b971b8
       <model usable='no'>Icelake-Server</model>
b971b8
+      <model usable='no'>Icelake-Client-noTSX</model>
b971b8
       <model usable='no'>Icelake-Client</model>
b971b8
       <model usable='yes'>Haswell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Haswell-noTSX</model>
b971b8
@@ -88,6 +92,7 @@
b971b8
       <model usable='no'>EPYC</model>
b971b8
       <model usable='no'>Dhyana</model>
b971b8
       <model usable='yes'>Conroe</model>
b971b8
+      <model usable='no'>Cascadelake-Server-noTSX</model>
b971b8
       <model usable='no'>Cascadelake-Server</model>
b971b8
       <model usable='yes'>Broadwell-noTSX-IBRS</model>
b971b8
       <model usable='yes'>Broadwell-noTSX</model>
b971b8
-- 
b971b8
2.26.2
b971b8