[PATCH v2 30/36] cpu_map: Add versions of Nehalem CPU model

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

Notes:
    Version 2:
    - Nehalem-v2 defined as Nehalem-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_Nehalem-v1.xml                     | 6 ++++++
 src/cpu_map/x86_Nehalem-v2.xml                     | 6 ++++++
 tests/cputestdata/x86_64-cpuid-Xeon-E7540-host.xml | 2 +-
 tests/cputestdata/x86_64-cpuid-Xeon-W3520-host.xml | 2 +-
 tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_5.2.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_6.0.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_6.1.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_7.0.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_7.1.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 9 +++++++--
 tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_7.2.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_8.0.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_8.1.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_8.2.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_9.0.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_9.1.0.x86_64.xml         | 9 +++++++--
 tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml     | 9 +++++++--
 tests/domaincapsdata/qemu_9.2.0.x86_64.xml         | 9 +++++++--
 46 files changed, 298 insertions(+), 82 deletions(-)
 create mode 100644 src/cpu_map/x86_Nehalem-v1.xml
 create mode 100644 src/cpu_map/x86_Nehalem-v2.xml

diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 1160a99ccf..1aa1d52f7a 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -31,6 +31,8 @@
       <include filename='x86_Penryn.xml'/>
       <include filename='x86_Nehalem.xml'/>
       <include filename='x86_Nehalem-IBRS.xml'/>
+      <include filename='x86_Nehalem-v1.xml'/>
+      <include filename='x86_Nehalem-v2.xml'/>
       <include filename='x86_Westmere.xml'/>
       <include filename='x86_Westmere-IBRS.xml'/>
       <include filename='x86_Westmere-v1.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 474f43fad5..9accba9936 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -83,6 +83,8 @@ cpumap_data = [
   'x86_kvm64.xml',
   'x86_n270.xml',
   'x86_Nehalem-IBRS.xml',
+  'x86_Nehalem-v1.xml',
+  'x86_Nehalem-v2.xml',
   'x86_Nehalem.xml',
   'x86_Opteron_G1.xml',
   'x86_Opteron_G2.xml',
diff --git a/src/cpu_map/x86_Nehalem-v1.xml b/src/cpu_map/x86_Nehalem-v1.xml
new file mode 100644
index 0000000000..e53b149665
--- /dev/null
+++ b/src/cpu_map/x86_Nehalem-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='Nehalem-v1'>
+    <decode host='on' guest='off'/>
+    <model name='Nehalem'/>
+  </model>
+</cpus>
diff --git a/src/cpu_map/x86_Nehalem-v2.xml b/src/cpu_map/x86_Nehalem-v2.xml
new file mode 100644
index 0000000000..46b090b682
--- /dev/null
+++ b/src/cpu_map/x86_Nehalem-v2.xml
@@ -0,0 +1,6 @@
+<cpus>
+  <model name='Nehalem-v2'>
+    <decode host='on' guest='off'/>
+    <model name='Nehalem-IBRS'/>
+  </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7540-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E7540-host.xml
index 3575991eae..e8be61cccc 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E7540-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7540-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Nehalem-IBRS</model>
+  <model>Nehalem-v2</model>
   <vendor>Intel</vendor>
   <signature family='6' model='46' stepping='6'/>
   <feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-W3520-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-W3520-host.xml
index 453b56ff1f..b261762651 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-W3520-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-W3520-host.xml
@@ -1,6 +1,6 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>Nehalem</model>
+  <model>Nehalem-v1</model>
   <vendor>Intel</vendor>
   <signature family='6' model='26' stepping='5'/>
   <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 f28fc3588a..bad71f224b 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -514,11 +514,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 1a6022cf18..a029038c40 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -882,11 +882,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 0ddb5d7411..b67d477e3e 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -513,11 +513,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 47fb80dbb5..589daac924 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -523,11 +523,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 b0320b8bb0..4678c6dd21 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -914,11 +914,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 0a04364785..50d2aa6690 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -522,11 +522,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 2ab2725264..7ae20c1b2a 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -587,11 +587,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 01e3243839..e1a4dbbbf2 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1022,11 +1022,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index a33227c9e7..a1e9e227f7 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -586,11 +586,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 32d9396f7e..da015ee336 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -584,11 +584,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 4373491a96..1734f2a315 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1020,11 +1020,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index df66a60087..342cfcb031 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -583,11 +583,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 8e6af2e612..9f98e0ecf3 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -611,11 +611,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 f3a17b9cdc..0b852acde0 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1052,11 +1052,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 35c97e9653..2f6bfe14a5 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -610,11 +610,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 d9941ac903..2a07eb4442 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -578,11 +578,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 2cb556304c..da183f31f2 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1000,11 +1000,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 08f5223723..4d54e4f5f4 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -577,11 +577,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 21e3d6cdd2..19adea1842 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -583,11 +583,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 8efb91b8d2..c223cb4d79 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
@@ -817,11 +817,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
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 8efb91b8d2..c223cb4d79 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -817,11 +817,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 244c60638b..a557ffa7da 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -582,11 +582,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 4da4c9502b..0aa4cbc785 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -583,11 +583,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 7a14b52628..c88b68e566 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -817,11 +817,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index bb63910270..6815648b70 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -582,11 +582,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 0590aadff0..67cd483a1f 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -721,11 +721,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 ddf0837a3e..04dcadb6e5 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -799,11 +799,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index cb7724308b..5355c72af5 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -720,11 +720,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 ece4b0e9df..fd02445887 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -722,11 +722,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 828cbe069a..0ec33d8429 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -788,11 +788,16 @@
         <feature name='tsc-deadline'/>
         <feature name='x2apic'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index da9d657b8e..a23befe2f1 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -721,11 +721,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 ac6b431057..b023d610ef 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -722,11 +722,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 a63f5a5060..98a41dd8b4 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -750,11 +750,16 @@
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index ac2c018ccf..835512bef6 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -721,11 +721,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 cf24a98793..2edf598fe3 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -755,11 +755,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 c396fb8eed..f662f2877c 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -775,11 +775,16 @@
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index d6905fe903..e21869ffbf 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -754,11 +754,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 21affa5e67..2eef3931d4 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -755,11 +755,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
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 c6f1732275..f1da5250cf 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -775,11 +775,16 @@
         <feature name='spec-ctrl'/>
         <feature name='tsc-deadline'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='no' vendor='AMD'>Opteron_G3</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index ca506076a8..c2ba1fde1b 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -754,11 +754,16 @@
         <feature name='erms'/>
         <feature name='spec-ctrl'/>
       </blockers>
-      <model usable='yes' vendor='Intel'>Nehalem</model>
-      <model usable='no' vendor='Intel'>Nehalem-IBRS</model>
+      <model usable='yes' vendor='Intel' canonical='Nehalem-v1'>Nehalem</model>
+      <model usable='no' vendor='Intel' canonical='Nehalem-v2'>Nehalem-IBRS</model>
       <blockers model='Nehalem-IBRS'>
         <feature name='spec-ctrl'/>
       </blockers>
+      <model usable='yes' vendor='Intel'>Nehalem-v1</model>
+      <model usable='no' vendor='Intel'>Nehalem-v2</model>
+      <blockers model='Nehalem-v2'>
+        <feature name='spec-ctrl'/>
+      </blockers>
       <model usable='yes' vendor='AMD'>Opteron_G1</model>
       <model usable='yes' vendor='AMD'>Opteron_G2</model>
       <model usable='yes' vendor='AMD'>Opteron_G3</model>
-- 
2.47.0