[PATCH v2 27/36] cpu_map: Add versions of IvyBridge CPU model

Jiri Denemark posted 36 patches 1 week, 4 days ago
[PATCH v2 27/36] cpu_map: Add versions of IvyBridge CPU model
Posted by Jiri Denemark 1 week, 4 days ago
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---

Notes:
    Version 2:
    - IvyBridge-v2 defined as IvyBridge-IBRS
    - <decode host='on' guest='off'/> for all versioned models
    - canonical CPU models in domain capabilities

 src/cpu_map/index.xml                         |  2 ++
 src/cpu_map/meson.build                       |  2 ++
 src/cpu_map/x86_IvyBridge-v1.xml              |  6 ++++++
 src/cpu_map/x86_IvyBridge-v2.xml              |  6 ++++++
 .../x86_64-cpuid-Core-i7-3520M-host.xml       |  2 +-
 .../x86_64-cpuid-Core-i7-3740QM-host.xml      |  2 +-
 .../x86_64-cpuid-Core-i7-3770-host.xml        |  2 +-
 .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml  | 19 +++++++++++++++++--
 tests/domaincapsdata/qemu_5.2.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml  | 19 +++++++++++++++++--
 tests/domaincapsdata/qemu_6.0.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml  | 19 +++++++++++++++++--
 tests/domaincapsdata/qemu_6.1.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  | 19 +++++++++++++++++--
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml  | 19 +++++++++++++++++--
 tests/domaincapsdata/qemu_7.0.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml  | 19 +++++++++++++++++--
 tests/domaincapsdata/qemu_7.1.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_7.2.0-q35.x86_64.xml  | 13 +++++++++++--
 .../qemu_7.2.0-tcg.x86_64+hvf.xml             | 15 +++++++++++++--
 .../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml  | 15 +++++++++++++--
 tests/domaincapsdata/qemu_7.2.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_8.0.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml  | 15 +++++++++++++--
 tests/domaincapsdata/qemu_8.0.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_8.1.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml  | 15 +++++++++++++--
 tests/domaincapsdata/qemu_8.1.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml  | 15 +++++++++++++--
 tests/domaincapsdata/qemu_8.2.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_9.0.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml  | 13 +++++++++++--
 tests/domaincapsdata/qemu_9.0.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_9.1.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml  | 13 +++++++++++--
 tests/domaincapsdata/qemu_9.1.0.x86_64.xml    | 13 +++++++++++--
 .../domaincapsdata/qemu_9.2.0-q35.x86_64.xml  | 13 +++++++++++--
 .../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml  | 13 +++++++++++--
 tests/domaincapsdata/qemu_9.2.0.x86_64.xml    | 13 +++++++++++--
 47 files changed, 505 insertions(+), 83 deletions(-)
 create mode 100644 src/cpu_map/x86_IvyBridge-v1.xml
 create mode 100644 src/cpu_map/x86_IvyBridge-v2.xml

diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index c94be551fb..02e15bc0fb 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -37,6 +37,8 @@
       <include filename='x86_SandyBridge-IBRS.xml'/>
       <include filename='x86_IvyBridge.xml'/>
       <include filename='x86_IvyBridge-IBRS.xml'/>
+      <include filename='x86_IvyBridge-v1.xml'/>
+      <include filename='x86_IvyBridge-v2.xml'/>
       <include filename='x86_Haswell-noTSX.xml'/>
       <include filename='x86_Haswell-noTSX-IBRS.xml'/>
       <include filename='x86_Haswell.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index e230ade8f0..5f5cbc6049 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -76,6 +76,8 @@ cpumap_data = [
   'x86_Icelake-Server-v7.xml',
   'x86_Icelake-Server.xml',
   'x86_IvyBridge-IBRS.xml',
+  'x86_IvyBridge-v1.xml',
+  'x86_IvyBridge-v2.xml',
   'x86_IvyBridge.xml',
   'x86_kvm32.xml',
   'x86_kvm64.xml',
diff --git a/src/cpu_map/x86_IvyBridge-v1.xml b/src/cpu_map/x86_IvyBridge-v1.xml
new file mode 100644
index 0000000000..6c72db378b
--- /dev/null
+++ b/src/cpu_map/x86_IvyBridge-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='IvyBridge-v1'>
+    <decode host='on' guest='off'/>
+    <model name='IvyBridge'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_IvyBridge-v2.xml b/src/cpu_map/x86_IvyBridge-v2.xml
new file mode 100644
index 0000000000..e5dae3095a
--- /dev/null
+++ b/src/cpu_map/x86_IvyBridge-v2.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='IvyBridge-v2'>
+    <decode host='on' guest='off'/>
+    <model name='IvyBridge-IBRS'/>
+  </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-3520M-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-3520M-host.xml
index 0a31450732..c2a10377e5 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-3520M-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-3520M-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>IvyBridge</model>
+  <model>IvyBridge-v1</model>
   <vendor>Intel</vendor>
   <signature family='6' model='58' stepping='9'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-3740QM-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-3740QM-host.xml
index 126eb09786..88459cdf90 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-3740QM-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-3740QM-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>IvyBridge</model>
+  <model>IvyBridge-v1</model>
   <vendor>Intel</vendor>
   <signature family='6' model='58' stepping='9'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-3770-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-3770-host.xml
index 0a31450732..c2a10377e5 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-3770-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-3770-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>IvyBridge</model>
+  <model>IvyBridge-v1</model>
   <vendor>Intel</vendor>
   <signature family='6' model='58' stepping='9'/>
   <feature name='dtes64'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index b44ea2611d..91470f547c 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -496,15 +496,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 799996be48..ea9d251170 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -852,14 +852,14 @@
         <feature name='x2apic'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='avx'/>
         <feature name='f16c'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='avx'/>
         <feature name='f16c'/>
@@ -867,6 +867,21 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 252f6afa18..5595aa189f 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -495,15 +495,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index beaa1dafbd..67e9581392 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -505,15 +505,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 36163763f8..dece2c5a51 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -884,14 +884,14 @@
         <feature name='x2apic'/>
         <feature name='xsavec'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='avx'/>
         <feature name='f16c'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='avx'/>
         <feature name='f16c'/>
@@ -899,6 +899,21 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index eed3864bb1..b20142b754 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -504,15 +504,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index c3b4c79732..20cf24f7d2 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -569,15 +569,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index d584638f33..8c105600d1 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -992,14 +992,14 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='avx'/>
         <feature name='f16c'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='avx'/>
         <feature name='f16c'/>
@@ -1007,6 +1007,21 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 5bb327039d..d04712fac0 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -568,15 +568,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 5d5fbc9c31..fcb4bc875c 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -566,15 +566,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 5165e04d78..89d88b5ba6 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -990,14 +990,14 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='avx'/>
         <feature name='f16c'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='avx'/>
         <feature name='f16c'/>
@@ -1005,6 +1005,21 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index d1cf0e9702..dd65742683 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -565,15 +565,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 758066b64b..7a8c833ffb 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -593,15 +593,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index ed7c6225c0..e180310c57 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1022,14 +1022,14 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='avx'/>
         <feature name='f16c'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='avx'/>
         <feature name='f16c'/>
@@ -1037,6 +1037,21 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 8cde45efa8..0e27307188 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -592,15 +592,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 64b5033873..63b5f3daeb 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -560,15 +560,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 4bebb680d0..f2f45a3159 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -970,14 +970,14 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='avx'/>
         <feature name='f16c'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='avx'/>
         <feature name='f16c'/>
@@ -985,6 +985,21 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='avx'/>
+        <feature name='f16c'/>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index f4c7fb0089..4596b3cfaa 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -559,15 +559,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index a0fb5fad67..eb02099bdd 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -565,15 +565,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 17e4b135bb..8833bf346f 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -795,17 +795,28 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 17e4b135bb..8833bf346f 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -795,17 +795,28 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 17bd1d5c75..abb210a30b 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -564,15 +564,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 9e69036f90..283617171c 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -565,15 +565,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 3192c6cd1f..65e487ff9e 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -795,17 +795,28 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 79e5eeddc6..0760bdaac4 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -564,15 +564,24 @@
         <feature name='vaes'/>
         <feature name='vpclmulqdq'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index dfbaeb4d7a..e1d63a9007 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -703,15 +703,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 035eb24b03..edd510b459 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -777,17 +777,28 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 13aa743b8a..db88c10e02 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -702,15 +702,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 649abc64fc..32ca16ad7a 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -704,15 +704,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 9451fc7a44..bbedbc97e8 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -766,17 +766,28 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+        <feature name='x2apic'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index b8d4756e68..dbb2f570c4 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -703,15 +703,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index dfcacf6e6f..1bb022ed96 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -704,15 +704,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 17b0727063..36e94c5332 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -732,15 +732,24 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index b378b91201..1f322d41c3 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -703,15 +703,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index e48cdd2a2e..1a646e25eb 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -737,15 +737,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 08d7cc0ca7..5ed8b25139 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -757,15 +757,24 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 684c342df6..fa46dd5393 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -736,15 +736,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 2d670ffaf4..3cfbed919a 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -737,15 +737,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 9823a24b7d..f6f461bbf4 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -757,15 +757,24 @@
         <feature name='xsavec'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='tsc-deadline'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='spec-ctrl'/>
+        <feature name='tsc-deadline'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index ce834cb4d5..f2f765ade9 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -736,15 +736,24 @@
         <feature name='vpclmulqdq'/>
         <feature name='xsaves'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v1'>IvyBridge</model>
       <blockers model='IvyBridge'>
         <feature name='erms'/>
       </blockers>
-      <model usable='no' vendor='Intel'>IvyBridge-IBRS</model>
+      <model usable='no' vendor='Intel' canonical='IvyBridge-v2'>IvyBridge-IBRS</model>
       <blockers model='IvyBridge-IBRS'>
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v1</model>
+      <blockers model='IvyBridge-v1'>
+        <feature name='erms'/>
+      </blockers>
+      <model usable='no' vendor='Intel'>IvyBridge-v2</model>
+      <blockers model='IvyBridge-v2'>
+        <feature name='erms'/>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='Intel'>Nehalem</model>
       <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
-- 
2.47.0