Merge ~lvoytek/ubuntu/+source/libvirt:sapphire-rapids-and-libvirt-uri-jammy into ubuntu/+source/libvirt:ubuntu/jammy-devel

Proposed by Lena Voytek
Status: Merged
Approved by: git-ubuntu bot
Approved revision: not available
Merge reported by: Andreas Hasenack
Merged at revision: e73a7076ae6d54afd840cc51808a385c88a2bda0
Proposed branch: ~lvoytek/ubuntu/+source/libvirt:sapphire-rapids-and-libvirt-uri-jammy
Merge into: ubuntu/+source/libvirt:ubuntu/jammy-devel
Diff against target: 1801 lines (+1633/-0)
26 files modified
debian/changelog (+7/-0)
debian/libvirt0.install (+2/-0)
debian/patches/series (+24/-0)
debian/patches/ubuntu/lp-2028057-01-alias-names-allow-additional-feature-node-children.patch (+33/-0)
debian/patches/ubuntu/lp-2028057-02-alias-names-ignore.patch (+45/-0)
debian/patches/ubuntu/lp-2028057-03-alias-names-make-machine-readable.patch (+161/-0)
debian/patches/ubuntu/lp-2028057-04-qemu-i386-sync-cpu-features.patch (+292/-0)
debian/patches/ubuntu/lp-2028057-05-add-missing-feature-amx.patch (+41/-0)
debian/patches/ubuntu/lp-2028057-06-qemu-i386-rename-file.patch (+15/-0)
debian/patches/ubuntu/lp-2028057-07-alias-names-add-to-features.patch (+39/-0)
debian/patches/ubuntu/lp-2028057-08-add-missing-feature-sgx.patch (+236/-0)
debian/patches/ubuntu/lp-2028057-09-add-missing-feature-sgxlc.patch (+83/-0)
debian/patches/ubuntu/lp-2028057-10-add-missing-feature-sgx-exinfo.patch (+22/-0)
debian/patches/ubuntu/lp-2028057-11-add-missing-feature-sgx1.patch (+21/-0)
debian/patches/ubuntu/lp-2028057-12-add-missing-feature-sgx2.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-13-add-missing-feature-sgx-additional.patch (+36/-0)
debian/patches/ubuntu/lp-2028057-14-add-missing-feature-bus-lock-detect.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-15-add-missing-feature-pks.patch (+52/-0)
debian/patches/ubuntu/lp-2028057-16-add-missing-feature-avx512-vp2intersect.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-17-add-missing-feature-avx512-fp16.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-18-add-missing-feature-serialize.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-19-add-missing-feature-tsx-ldtrk.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-20-add-missing-feature-arch-lbr.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-21-add-missing-feature-xfd.patch (+20/-0)
debian/patches/ubuntu/lp-2028057-22-add-missing-feature-intel-pt-lip.patch (+54/-0)
debian/patches/ubuntu/lp-2028057-23-add-new-CPU-model-Intel-SapphireRapids.patch (+310/-0)
Reviewer Review Type Date Requested Status
git-ubuntu bot Approve
Bryce Harrington (community) Approve
Canonical Server Reporter Pending
Review via email: mp+455072@code.launchpad.net

Description of the change

Add support for Sapphire Rapids and keep a consistent LIBVIRT_DEFAULT_URI value.

Jammy requires substantially more patches than Lunar for Sapphire Rapids with the addition of xfd, tsx-ldtrk, serialize, bus-lock-detect, avx512-fp16, and amx

Still working on architecture-specific testing for Sapphire Rapids alongside the SRU template for both bugs.

PPA: https://launchpad.net/~lvoytek/+archive/ubuntu/libvirt-sapphirerapids-uri

To post a comment you must log in.
Revision history for this message
Bryce Harrington (bryce) wrote :

This looks to be properly carrying the changes from https://code.launchpad.net/~lvoytek/ubuntu/+source/libvirt/+git/libvirt/+merge/455071 back to jammy, and the further support as mentioned. PPA builds properly, I didn't check autopkgtests but this type of change is unlikely to be adequately exercised by those tests. There is a quantity of patches here but they're principally all XML tweaks along with corresponding python and C code, all of which looks good on a quick visual inspection.

LGTM, +1

review: Approve
Revision history for this message
git-ubuntu bot (git-ubuntu-bot) wrote :

Approvers: lvoytek, bryce
Uploaders: lvoytek, bryce
MP auto-approved

review: Approve
e73a707... by Lena Voytek

changelog

Revision history for this message
Lena Voytek (lvoytek) wrote :

Thanks for the reviews Bryce! I'll go ahead and upload the Sapphire Rapids changes for lunar, and jammy. Still need some time for the URI update and I don't want the wishlist item to block this off

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

This is already in jammy-proposed[1], and git-ubuntu imported it. Marking the MP as merged.

1. https://launchpad.net/ubuntu/+source/libvirt/8.0.0-1ubuntu7.8

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/debian/changelog b/debian/changelog
index ce7b258..d28b52e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
1libvirt (8.0.0-1ubuntu7.8) jammy; urgency=medium
2
3 * d/p/u/lp-2028057-*, d/libvirt0.install: Add named types and definitions,
4 along with QEMU alias syncing for Intel SapphireRapids (LP: #2028057)
5
6 -- Lena Voytek <lena.voytek@canonical.com> Wed, 29 Nov 2023 14:52:52 -0700
7
1libvirt (8.0.0-1ubuntu7.7) jammy; urgency=medium8libvirt (8.0.0-1ubuntu7.7) jammy; urgency=medium
29
3 * When attempting to launch a VM with SGX enabled, there is an10 * When attempting to launch a VM with SGX enabled, there is an
diff --git a/debian/libvirt0.install b/debian/libvirt0.install
index b384c41..ca07f96 100644
--- a/debian/libvirt0.install
+++ b/debian/libvirt0.install
@@ -58,6 +58,8 @@ usr/share/libvirt/cpu_map/x86_Opteron_G5.xml
58usr/share/libvirt/cpu_map/x86_Penryn.xml58usr/share/libvirt/cpu_map/x86_Penryn.xml
59usr/share/libvirt/cpu_map/x86_SandyBridge-IBRS.xml59usr/share/libvirt/cpu_map/x86_SandyBridge-IBRS.xml
60usr/share/libvirt/cpu_map/x86_SandyBridge.xml60usr/share/libvirt/cpu_map/x86_SandyBridge.xml
61usr/share/libvirt/cpu_map/x86_SapphireRapids-noTSX.xml
62usr/share/libvirt/cpu_map/x86_SapphireRapids.xml
61usr/share/libvirt/cpu_map/x86_Skylake-Client-IBRS.xml63usr/share/libvirt/cpu_map/x86_Skylake-Client-IBRS.xml
62usr/share/libvirt/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml64usr/share/libvirt/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
63usr/share/libvirt/cpu_map/x86_Skylake-Client.xml65usr/share/libvirt/cpu_map/x86_Skylake-Client.xml
diff --git a/debian/patches/series b/debian/patches/series
index fa31371..8b1d998 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -29,6 +29,30 @@ ubuntu/dnsmasq-as-priv-user
29ubuntu/ovmf_paths.patch29ubuntu/ovmf_paths.patch
30ubuntu/wait-for-qemu-kvm.patch30ubuntu/wait-for-qemu-kvm.patch
3131
32ubuntu/lp-2028057-01-alias-names-allow-additional-feature-node-children.patch
33ubuntu/lp-2028057-02-alias-names-ignore.patch
34ubuntu/lp-2028057-03-alias-names-make-machine-readable.patch
35ubuntu/lp-2028057-04-qemu-i386-sync-cpu-features.patch
36ubuntu/lp-2028057-05-add-missing-feature-amx.patch
37ubuntu/lp-2028057-06-qemu-i386-rename-file.patch
38ubuntu/lp-2028057-07-alias-names-add-to-features.patch
39ubuntu/lp-2028057-08-add-missing-feature-sgx.patch
40ubuntu/lp-2028057-09-add-missing-feature-sgxlc.patch
41ubuntu/lp-2028057-10-add-missing-feature-sgx-exinfo.patch
42ubuntu/lp-2028057-11-add-missing-feature-sgx1.patch
43ubuntu/lp-2028057-12-add-missing-feature-sgx2.patch
44ubuntu/lp-2028057-13-add-missing-feature-sgx-additional.patch
45ubuntu/lp-2028057-14-add-missing-feature-bus-lock-detect.patch
46ubuntu/lp-2028057-15-add-missing-feature-pks.patch
47ubuntu/lp-2028057-16-add-missing-feature-avx512-vp2intersect.patch
48ubuntu/lp-2028057-17-add-missing-feature-avx512-fp16.patch
49ubuntu/lp-2028057-18-add-missing-feature-serialize.patch
50ubuntu/lp-2028057-19-add-missing-feature-tsx-ldtrk.patch
51ubuntu/lp-2028057-20-add-missing-feature-arch-lbr.patch
52ubuntu/lp-2028057-21-add-missing-feature-xfd.patch
53ubuntu/lp-2028057-22-add-missing-feature-intel-pt-lip.patch
54ubuntu/lp-2028057-23-add-new-CPU-model-Intel-SapphireRapids.patch
55
32# Ubuntu Apparmor Changes56# Ubuntu Apparmor Changes
33ubuntu-aa/0020-virt-aa-helper-ubuntu-storage-paths.patch57ubuntu-aa/0020-virt-aa-helper-ubuntu-storage-paths.patch
34ubuntu-aa/0029-appmor-libvirt-qemu-Add-9p-support.patch58ubuntu-aa/0029-appmor-libvirt-qemu-Add-9p-support.patch
diff --git a/debian/patches/ubuntu/lp-2028057-01-alias-names-allow-additional-feature-node-children.patch b/debian/patches/ubuntu/lp-2028057-01-alias-names-allow-additional-feature-node-children.patch
35new file mode 10064459new file mode 100644
index 0000000..bd4d6be
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-01-alias-names-allow-additional-feature-node-children.patch
@@ -0,0 +1,33 @@
1Description: Allow for more than one child in feature nodes in cpu-data.py.
2 cpu-data.py assumes that all "feature" nodes have exactly one child. This
3 assumption is no longer true when the cpumap includes alias-names for
4 features.
5Author: Tim Wiederhake <twiederh@redhat.com>
6Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/10a41a8cbdf4bcaba0039e97704afda8220cd8e0
7Bug-Ubuntu: https://launchpad.net/bugs/2028057
8Forwarded: not-needed
9Last-Update: 2023-11-29
10---
11This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
12--- a/tests/cputestdata/cpu-data.py
13+++ b/tests/cputestdata/cpu-data.py
14@@ -445,12 +445,15 @@
15
16 cpuMap = dict()
17 for f in xml.etree.ElementTree.parse(path).getroot().iter("feature"):
18- if f[0].tag not in ("cpuid", "msr"):
19+ data = f.find("cpuid")
20+ if data is None:
21+ data = f.find("msr")
22+ if data is None:
23 continue
24
25- feature = {"type": f[0].tag}
26- for reg in _KEYS[f[0].tag] + _REGS[f[0].tag]:
27- feature[reg] = int(f[0].attrib.get(reg, "0"), 0)
28+ feature = {"type": data.tag}
29+ for reg in _KEYS[data.tag] + _REGS[data.tag]:
30+ feature[reg] = int(data.attrib.get(reg, "0"), 0)
31 cpuMap[f.attrib["name"]] = feature
32 return cpuMap
33
diff --git a/debian/patches/ubuntu/lp-2028057-02-alias-names-ignore.patch b/debian/patches/ubuntu/lp-2028057-02-alias-names-ignore.patch
0new file mode 10064434new file mode 100644
index 0000000..3eb2351
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-02-alias-names-ignore.patch
@@ -0,0 +1,45 @@
1Description: Ignore alias names in feature maps when parsing in cpu_x86.
2 This patch makes sure cpu_x86 skips over feature map alias names which will
3 be added in this series as they are meant only for QEMU synchronization.
4Author: Tim Wiederhake <twiederh@redhat.com>
5Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/7b0c01db75b0c11ba6f80999b822cfadff4d28da
6Bug-Ubuntu: https://launchpad.net/bugs/2028057
7Forwarded: not-needed
8Last-Update: 2023-11-29
9---
10This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
11--- a/src/cpu/cpu_x86.c
12+++ b/src/cpu/cpu_x86.c
13@@ -1089,7 +1089,7 @@
14 x86ParseDataItemList(virCPUx86Data *cpudata,
15 xmlNodePtr node)
16 {
17- size_t i;
18+ size_t i = 0;
19
20 if (xmlChildElementCount(node) <= 0) {
21 virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("no x86 CPU data found"));
22@@ -1097,9 +1097,14 @@
23 }
24
25 node = xmlFirstElementChild(node);
26- for (i = 0; node; ++i) {
27+ while (node) {
28 virCPUx86DataItem item;
29
30+ if (virXMLNodeNameEqual(node, "alias")) {
31+ node = xmlNextElementSibling(node);
32+ continue;
33+ }
34+
35 if (virXMLNodeNameEqual(node, "cpuid")) {
36 if (x86ParseCPUID(node, &item) < 0) {
37 virReportError(VIR_ERR_INTERNAL_ERROR,
38@@ -1116,6 +1121,7 @@
39
40 if (virCPUx86DataAddItem(cpudata, &item) < 0)
41 return -1;
42+ ++i;
43
44 node = xmlNextElementSibling(node);
45 }
diff --git a/debian/patches/ubuntu/lp-2028057-03-alias-names-make-machine-readable.patch b/debian/patches/ubuntu/lp-2028057-03-alias-names-make-machine-readable.patch
0new file mode 10064446new file mode 100644
index 0000000..9200c9e
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-03-alias-names-make-machine-readable.patch
@@ -0,0 +1,161 @@
1Description: Make x86 feature alias names machine readable.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/1d946ac79416f3731262c059c35a234c95285d46
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -98,10 +98,12 @@
12 </feature>
13
14 <!-- standard features, ECX -->
15- <feature name='pni'> <!-- sse3 -->
16+ <feature name='pni'>
17+ <alias name='sse3' source='qemu'/>
18 <cpuid eax_in='0x01' ecx='0x00000001'/>
19 </feature>
20- <feature name='pclmuldq'> <!-- pclmulqdq -->
21+ <feature name='pclmuldq'>
22+ <alias name='pclmulqdq' source='qemu'/>
23 <cpuid eax_in='0x01' ecx='0x00000002'/>
24 </feature>
25 <feature name='dtes64'>
26@@ -110,7 +112,8 @@
27 <feature name='monitor'>
28 <cpuid eax_in='0x01' ecx='0x00000008'/>
29 </feature>
30- <feature name='ds_cpl'> <!-- ds-cpl -->
31+ <feature name='ds_cpl'>
32+ <alias name='ds-cpl' source='qemu'/>
33 <cpuid eax_in='0x01' ecx='0x00000010'/>
34 </feature>
35 <feature name='vmx'>
36@@ -149,10 +152,14 @@
37 <feature name='dca'>
38 <cpuid eax_in='0x01' ecx='0x00040000'/>
39 </feature>
40- <feature name='sse4.1'> <!-- sse4-1, sse4_1 -->
41+ <feature name='sse4.1'>
42+ <alias name='sse4-1' source='qemu'/>
43+ <alias name='sse4_1' source='qemu'/>
44 <cpuid eax_in='0x01' ecx='0x00080000'/>
45 </feature>
46- <feature name='sse4.2'> <!-- sse4-2, sse4_2 -->
47+ <feature name='sse4.2'>
48+ <alias name='sse4-2' source='qemu'/>
49+ <alias name='sse4_2' source='qemu'/>
50 <cpuid eax_in='0x01' ecx='0x00100000'/>
51 </feature>
52 <feature name='x2apic'>
53@@ -198,7 +205,8 @@
54 <feature name='fsgsbase'>
55 <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000001'/>
56 </feature>
57- <feature name='tsc_adjust'> <!-- tsc-adjust -->
58+ <feature name='tsc_adjust'>
59+ <alias name='tsc-adjust' source='qemu'/>
60 <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/>
61 </feature>
62 <feature name='bmi1'>
63@@ -225,7 +233,8 @@
64 <feature name='rtm'>
65 <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000800'/>
66 </feature>
67- <feature name='cmt'> <!-- cqm -->
68+ <feature name='cmt'>
69+ <alias name='cqm' source='linux'/>
70 <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00001000'/>
71 </feature>
72 <feature name='mpx'>
73@@ -341,7 +350,8 @@
74 <feature name='fsrm'>
75 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000010'/>
76 </feature>
77- <feature name='md-clear'> <!-- md_clear -->
78+ <feature name='md-clear'>
79+ <alias name='md_clear' source='linux'/>
80 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/>
81 </feature>
82 <feature name='pconfig'>
83@@ -362,7 +372,8 @@
84 <feature name='stibp'>
85 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x08000000'/>
86 </feature>
87- <feature name='arch-capabilities'> <!-- arch_capabilities, arch-facilities -->
88+ <feature name='arch-capabilities'>
89+ <alias name='arch_capabilities' source='linux'/>
90 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x20000000'/>
91 </feature>
92 <feature name='core-capability'>
93@@ -405,13 +416,16 @@
94 <feature name='syscall'>
95 <cpuid eax_in='0x80000001' edx='0x00000800'/>
96 </feature>
97- <feature name='nx'> <!-- xd -->
98+ <feature name='nx'>
99+ <alias name='xd' source='qemu'/>
100 <cpuid eax_in='0x80000001' edx='0x00100000'/>
101 </feature>
102 <feature name='mmxext'>
103 <cpuid eax_in='0x80000001' edx='0x00400000'/>
104 </feature>
105- <feature name='fxsr_opt'> <!-- ffxsr, fxsr-opt -->
106+ <feature name='fxsr_opt'>
107+ <alias name='ffxsr' source='qemu'/>
108+ <alias name='fxsr-opt' source='qemu'/>
109 <cpuid eax_in='0x80000001' edx='0x02000000'/>
110 </feature>
111 <feature name='pdpe1gb'>
112@@ -420,7 +434,8 @@
113 <feature name='rdtscp'>
114 <cpuid eax_in='0x80000001' edx='0x08000000'/>
115 </feature>
116- <feature name='lm'> <!-- i64 -->
117+ <feature name='lm'>
118+ <alias name='i64' source='qemu'/>
119 <cpuid eax_in='0x80000001' edx='0x20000000'/>
120 </feature>
121 <feature name='3dnowext'>
122@@ -431,10 +446,12 @@
123 </feature>
124
125 <!-- extended features, ECX -->
126- <feature name='lahf_lm'> <!-- lahf-lm -->
127+ <feature name='lahf_lm'>
128+ <alias name='lahf-lm' source='qemu'/>
129 <cpuid eax_in='0x80000001' ecx='0x00000001'/>
130 </feature>
131- <feature name='cmp_legacy'> <!-- cmp-legacy -->
132+ <feature name='cmp_legacy'>
133+ <alias name='cmp-legacy' source='qemu'/>
134 <cpuid eax_in='0x80000001' ecx='0x00000002'/>
135 </feature>
136 <feature name='svm'>
137@@ -485,7 +502,8 @@
138 <feature name='cvt16'>
139 <cpuid eax_in='0x80000001' ecx='0x00040000'/>
140 </feature>
141- <feature name='nodeid_msr'> <!-- nodeid-msr -->
142+ <feature name='nodeid_msr'>
143+ <alias name='nodeid-msr' source='qemu'/>
144 <cpuid eax_in='0x80000001' ecx='0x00080000'/>
145 </feature>
146 <feature name='tbm'>
147@@ -494,10 +512,12 @@
148 <feature name='topoext'>
149 <cpuid eax_in='0x80000001' ecx='0x00400000'/>
150 </feature>
151- <feature name='perfctr_core'> <!-- perfctr-core -->
152+ <feature name='perfctr_core'>
153+ <alias name='perfctr-core' source='qemu'/>
154 <cpuid eax_in='0x80000001' ecx='0x00800000'/>
155 </feature>
156- <feature name='perfctr_nb'> <!-- perfctr-nb -->
157+ <feature name='perfctr_nb'>
158+ <alias name='perfctr-nb' source='qemu'/>
159 <cpuid eax_in='0x80000001' ecx='0x01000000'/>
160 </feature>
161
diff --git a/debian/patches/ubuntu/lp-2028057-04-qemu-i386-sync-cpu-features.patch b/debian/patches/ubuntu/lp-2028057-04-qemu-i386-sync-cpu-features.patch
0new file mode 100644162new file mode 100644
index 0000000..97b9f2a
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-04-qemu-i386-sync-cpu-features.patch
@@ -0,0 +1,292 @@
1Description: Add script to sync from QEMU i386 cpu features.
2 This script is intended to help in synchronizing i386 QEMU cpu feature
3 definitions with libvirt. QEMU's attribute list for the "max-x86_64-cpu"
4 contains non-cpu-feature items and needs to be filtered before being useful.
5Author: Tim Wiederhake <twiederh@redhat.com>
6Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/fe69966cbbdd51e409506bd485e75b317fde8fbb
7Bug-Ubuntu: https://launchpad.net/bugs/2028057
8Forwarded: not-needed
9Last-Update: 2023-11-29
10---
11This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
12--- /dev/null
13+++ b/src/cpu_map/sync_qemu_features_i386.py
14@@ -0,0 +1,278 @@
15+#!/usr/bin/env python3
16+
17+import argparse
18+import json
19+import subprocess
20+import xml.etree.ElementTree
21+
22+
23+def ignore_feature(feature):
24+ ignored_features = [
25+ # VIA/Cyrix/Centaur-defined CPU features
26+ # CPUID level 0xC0000001, word 5
27+ "ace2",
28+ "ace2-en",
29+ "phe",
30+ "phe-en",
31+ "pmm",
32+ "pmm-en",
33+ "xcrypt",
34+ "xcrypt-en",
35+ "xstore",
36+ "xstore-en",
37+
38+ # non-features
39+ "check",
40+ "cpuid-0xb",
41+ "enforce",
42+ "fill-mtrr-mask",
43+ "full-cpuid-auto-level",
44+ "full-width-write",
45+ "host-cache-info",
46+ "host-phys-bits",
47+ "hotpluggable",
48+ "hotplugged",
49+ "hv-apicv",
50+ "hv-avic",
51+ "hv-crash",
52+ "hv-emsr-bitmap",
53+ "hv-enforce-cpuid",
54+ "hv-evmcs",
55+ "hv-frequencies",
56+ "hv-ipi",
57+ "hv-passthrough",
58+ "hv-reenlightenment",
59+ "hv-relaxed",
60+ "hv-reset",
61+ "hv-runtime",
62+ "hv-stimer",
63+ "hv-stimer-direct",
64+ "hv-syndbg",
65+ "hv-synic",
66+ "hv-time",
67+ "hv-tlbflush",
68+ "hv-tlbflush-direct",
69+ "hv-tlbflush-ext",
70+ "hv-vapic",
71+ "hv-vpindex",
72+ "hv-xmm-input",
73+ "kvm",
74+ "kvm-asyncpf",
75+ "kvm-asyncpf-int",
76+ "kvm-hint-dedicated",
77+ "kvm-mmu",
78+ "kvm-msi-ext-dest-id",
79+ "kvm-no-smi-migration",
80+ "kvm-nopiodelay",
81+ "kvm-poll-control",
82+ "kvm-pv-enforce-cpuid",
83+ "kvm-pv-eoi",
84+ "kvm-pv-ipi",
85+ "kvm-pv-sched-yield",
86+ "kvm-pv-tlb-flush",
87+ "kvm-pv-unhalt",
88+ "kvm-steal-time",
89+ "kvm_asyncpf",
90+ "kvm_asyncpf_int",
91+ "kvm_mmu",
92+ "kvm_nopiodelay",
93+ "kvm_poll_control",
94+ "kvm_pv_eoi",
95+ "kvm_pv_unhalt",
96+ "kvm_steal_time",
97+ "kvmclock",
98+ "kvmclock-stable-bit",
99+ "l3-cache",
100+ "legacy-cache",
101+ "lmce",
102+ "migratable",
103+ "pmu",
104+ "realized",
105+ "start-powered-off",
106+ "tcg-cpuid",
107+ "vmware-cpuid-freq",
108+ "vmx-activity-hlt",
109+ "vmx-activity-shutdown",
110+ "vmx-activity-wait-sipi",
111+ "vmx-apicv-register",
112+ "vmx-apicv-vid",
113+ "vmx-apicv-x2apic",
114+ "vmx-apicv-xapic",
115+ "vmx-cr3-load-noexit",
116+ "vmx-cr3-store-noexit",
117+ "vmx-cr8-load-exit",
118+ "vmx-cr8-store-exit",
119+ "vmx-desc-exit",
120+ "vmx-encls-exit",
121+ "vmx-entry-ia32e-mode",
122+ "vmx-entry-load-bndcfgs",
123+ "vmx-entry-load-efer",
124+ "vmx-entry-load-pat",
125+ "vmx-entry-load-perf-global-ctrl",
126+ "vmx-entry-load-pkrs",
127+ "vmx-entry-load-rtit-ctl",
128+ "vmx-entry-noload-debugctl",
129+ "vmx-ept",
130+ "vmx-ept-1gb",
131+ "vmx-ept-2mb",
132+ "vmx-ept-advanced-exitinfo",
133+ "vmx-ept-execonly",
134+ "vmx-eptad",
135+ "vmx-eptp-switching",
136+ "vmx-exit-ack-intr",
137+ "vmx-exit-clear-bndcfgs",
138+ "vmx-exit-clear-rtit-ctl",
139+ "vmx-exit-load-efer",
140+ "vmx-exit-load-pat",
141+ "vmx-exit-load-perf-global-ctrl",
142+ "vmx-exit-load-pkrs",
143+ "vmx-exit-nosave-debugctl",
144+ "vmx-exit-save-efer",
145+ "vmx-exit-save-pat",
146+ "vmx-exit-save-preemption-timer",
147+ "vmx-flexpriority",
148+ "vmx-hlt-exit",
149+ "vmx-ins-outs",
150+ "vmx-intr-exit",
151+ "vmx-invept",
152+ "vmx-invept-all-context",
153+ "vmx-invept-single-context",
154+ "vmx-invept-single-context-noglobals",
155+ "vmx-invlpg-exit",
156+ "vmx-invpcid-exit",
157+ "vmx-invvpid",
158+ "vmx-invvpid-all-context",
159+ "vmx-invvpid-single-addr",
160+ "vmx-io-bitmap",
161+ "vmx-io-exit",
162+ "vmx-monitor-exit",
163+ "vmx-movdr-exit",
164+ "vmx-msr-bitmap",
165+ "vmx-mtf",
166+ "vmx-mwait-exit",
167+ "vmx-nmi-exit",
168+ "vmx-page-walk-4",
169+ "vmx-page-walk-5",
170+ "vmx-pause-exit",
171+ "vmx-ple",
172+ "vmx-pml",
173+ "vmx-posted-intr",
174+ "vmx-preemption-timer",
175+ "vmx-rdpmc-exit",
176+ "vmx-rdrand-exit",
177+ "vmx-rdseed-exit",
178+ "vmx-rdtsc-exit",
179+ "vmx-rdtscp-exit",
180+ "vmx-secondary-ctls",
181+ "vmx-shadow-vmcs",
182+ "vmx-store-lma",
183+ "vmx-true-ctls",
184+ "vmx-tsc-offset",
185+ "vmx-tsc-scaling",
186+ "vmx-unrestricted-guest",
187+ "vmx-vintr-pending",
188+ "vmx-vmfunc",
189+ "vmx-vmwrite-vmexit-fields",
190+ "vmx-vnmi",
191+ "vmx-vnmi-pending",
192+ "vmx-vpid",
193+ "vmx-wbinvd-exit",
194+ "vmx-xsaves",
195+ "vmx-zero-len-inject",
196+ ]
197+
198+ if feature["type"] != "bool":
199+ return True
200+
201+ name = feature["name"]
202+
203+ if name.startswith("x-"):
204+ return True
205+
206+ if name in ignored_features:
207+ return True
208+
209+ return False
210+
211+
212+def get_qemu_feature_list(path_to_qemu):
213+ cmd = [
214+ path_to_qemu,
215+ "-machine", "accel=kvm",
216+ "-cpu", "host",
217+ "-nodefaults",
218+ "-nographic",
219+ "-qmp",
220+ "stdio"
221+ ]
222+
223+ request = """
224+ {
225+ "execute": "qmp_capabilities"
226+ }
227+ {
228+ "execute": "qom-list-properties",
229+ "arguments": {
230+ "typename": "max-x86_64-cpu"
231+ },
232+ "id": "qom-list-properties"
233+ }
234+ {
235+ "execute": "quit"
236+ }
237+ """
238+
239+ decoder = json.JSONDecoder()
240+ output = subprocess.check_output(cmd, input=request, text=True)
241+ while output:
242+ obj, idx = decoder.raw_decode(output)
243+ output = output[idx:].strip()
244+ if obj.get("id") != "qom-list-properties":
245+ continue
246+ for feature in obj["return"]:
247+ if ignore_feature(feature):
248+ continue
249+ yield feature["name"]
250+
251+
252+def get_libvirt_feature_list(path_to_featuresfile):
253+ dom = xml.etree.ElementTree.parse(path_to_featuresfile)
254+ for feature in dom.getroot().iter("feature"):
255+ yield feature.get("name")
256+ for alias in feature:
257+ if alias.tag == "alias" and alias.get("source") == "qemu":
258+ yield alias.get("name")
259+
260+
261+def main():
262+ parser = argparse.ArgumentParser(
263+ description="Synchronize x86 cpu features from QEMU i386 target.")
264+ parser.add_argument(
265+ "--qemu",
266+ help="Path to qemu executable",
267+ default="qemu-system-x86_64",
268+ type=str)
269+ parser.add_argument(
270+ "--features",
271+ help="Path to 'src/cpu_map/x86_features.xml' file in "
272+ "the libvirt repository",
273+ default="x86_features.xml",
274+ type=str)
275+
276+ args = parser.parse_args()
277+
278+ qfeatures = get_qemu_feature_list(args.qemu)
279+ lfeatures = list(get_libvirt_feature_list(args.features))
280+ missing = [f for f in sorted(qfeatures) if f not in lfeatures]
281+
282+ if missing:
283+ print("The following features were reported by qemu but are "
284+ "unknown to libvirt:")
285+ for feature in missing:
286+ print(" *", feature)
287+
288+ return len(missing) != 0
289+
290+
291+if __name__ == "__main__":
292+ exit(main())
diff --git a/debian/patches/ubuntu/lp-2028057-05-add-missing-feature-amx.patch b/debian/patches/ubuntu/lp-2028057-05-add-missing-feature-amx.patch
0new file mode 100644293new file mode 100644
index 0000000..a44564b
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-05-add-missing-feature-amx.patch
@@ -0,0 +1,41 @@
1Description: Add cpu feature amx.
2 AMX is one of the features used in Sapphire Rapids CPUs. This patch adds
3 feature definitions for amx-bf16, amx-tile, and amx-int8, and syncs them
4 with QEMU using the script added in the previous patch.
5Author: Lin Yang <lin.a.yang@intel.com>
6Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/e528717d9039e1f571c6546f2ea9c6ba55e2507a
7Bug-Ubuntu: https://launchpad.net/bugs/2028057
8Forwarded: not-needed
9Last-Update: 2023-11-29
10---
11This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
12--- a/src/cpu_map/sync_qemu_i386.py
13+++ b/src/cpu_map/sync_qemu_i386.py
14@@ -72,6 +72,9 @@
15 "CPUID_7_0_EDX_SPEC_CTRL": "spec-ctrl",
16 "CPUID_7_0_EDX_SPEC_CTRL_SSBD": "ssbd",
17 "CPUID_7_0_EDX_STIBP": "stibp",
18+ "CPUID_7_0_EDX_AMX_BF16": "amx-bf16",
19+ "CPUID_7_0_EDX_AMX_TILE": "amx-tile",
20+ "CPUID_7_0_EDX_AMX_INT8": "amx-int8",
21 "CPUID_7_1_EAX_AVX512_BF16": "avx512-bf16",
22 "CPUID_7_1_EAX_AVX_VNNI": "avx-vnni",
23 "CPUID_8000_0008_EBX_AMD_SSBD": "amd-ssbd",
24--- a/src/cpu_map/x86_features.xml
25+++ b/src/cpu_map/x86_features.xml
26@@ -347,6 +347,15 @@
27 <feature name='pconfig'>
28 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
29 </feature>
30+ <feature name='amx-bf16'>
31+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00400000'/>
32+ </feature>
33+ <feature name='amx-tile'>
34+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x01000000'/>
35+ </feature>
36+ <feature name='amx-int8'>
37+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x02000000'/>
38+ </feature>
39 <feature name='spec-ctrl'>
40 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x04000000'/>
41 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-06-qemu-i386-rename-file.patch b/debian/patches/ubuntu/lp-2028057-06-qemu-i386-rename-file.patch
0new file mode 10064442new file mode 100644
index 0000000..9607a9b
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-06-qemu-i386-rename-file.patch
@@ -0,0 +1,15 @@
1Description: Rename sync_qemu_i386.py to sync_qemu_models_i386.py.
2 The QEMU sync script was renamed upstream to make naming more consistent. This
3 patch is included to make the script work alongside the other patches for
4 Sapphire Rapids.
5Author: Tim Wiederhake <twiederh@redhat.com>
6Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/84080aabc0f9959b16e60cffeb634f420f86df0f
7Bug-Ubuntu: https://launchpad.net/bugs/2028057
8Forwarded: not-needed
9Last-Update: 2023-11-29
10---
11This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
12diff --git a/src/cpu_map/sync_qemu_i386.py b/src/cpu_map/sync_qemu_models_i386.py
13similarity index 100%
14rename from src/cpu_map/sync_qemu_i386.py
15rename to src/cpu_map/sync_qemu_models_i386.py
diff --git a/debian/patches/ubuntu/lp-2028057-07-alias-names-add-to-features.patch b/debian/patches/ubuntu/lp-2028057-07-alias-names-add-to-features.patch
0new file mode 10064416new file mode 100644
index 0000000..8a82467
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-07-alias-names-add-to-features.patch
@@ -0,0 +1,39 @@
1Description: Add alias names for some features.
2 Add alias names for features with names that have '_' instead of '-' in QEMU.
3Author: Tim Wiederhake <twiederh@redhat.com>
4Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/eb9912b4877b526f254af05f20c15a63fc633320
5Bug-Ubuntu: https://launchpad.net/bugs/2028057
6Forwarded: not-needed
7Last-Update: 2023-11-29
8---
9This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
10--- a/src/cpu_map/x86_features.xml
11+++ b/src/cpu_map/x86_features.xml
12@@ -563,15 +563,19 @@
13 <cpuid eax_in='0x8000000a' edx='0x00000002'/>
14 </feature>
15 <feature name='svm-lock'>
16+ <alias name='svm_lock' source='qemu'/>
17 <cpuid eax_in='0x8000000a' edx='0x00000004'/>
18 </feature>
19 <feature name='nrip-save'>
20+ <alias name='nrip_save' source='qemu'/>
21 <cpuid eax_in='0x8000000a' edx='0x00000008'/>
22 </feature>
23 <feature name='tsc-scale'>
24+ <alias name='tsc_scale' source='qemu'/>
25 <cpuid eax_in='0x8000000a' edx='0x00000010'/>
26 </feature>
27 <feature name='vmcb-clean'>
28+ <alias name='vmcb_clean' source='qemu'/>
29 <cpuid eax_in='0x8000000a' edx='0x00000020'/>
30 </feature>
31 <feature name='flushbyasid'>
32@@ -581,6 +585,7 @@
33 <cpuid eax_in='0x8000000a' edx='0x00000080'/>
34 </feature>
35 <feature name='pause-filter'>
36+ <alias name='pause_filter' source='qemu'/>
37 <cpuid eax_in='0x8000000a' edx='0x00000400'/>
38 </feature>
39 <feature name='pfthreshold'>
diff --git a/debian/patches/ubuntu/lp-2028057-08-add-missing-feature-sgx.patch b/debian/patches/ubuntu/lp-2028057-08-add-missing-feature-sgx.patch
0new file mode 10064440new file mode 100644
index 0000000..b2a21bb
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-08-add-missing-feature-sgx.patch
@@ -0,0 +1,236 @@
1Description: Add cpu feature sgx.
2 This patch adds the feature definition for SGX, and adds the feature to the
3 relevant existing processors - i7-7700, i7-8550U, i7-8700, IceLake Server,
4 Xeon E3-1225-v5, and Xeon E3-1245-v5.
5Author: Tim Wiederhake <twiederh@redhat.com>
6Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/24b95e07d27d73576eca5d2852a10103b4e4d3d1
7Bug-Ubuntu: https://launchpad.net/bugs/2028057
8Forwarded: not-needed
9Last-Update: 2023-11-29
10---
11This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
12--- a/src/cpu_map/x86_features.xml
13+++ b/src/cpu_map/x86_features.xml
14@@ -209,6 +209,9 @@
15 <alias name='tsc-adjust' source='qemu'/>
16 <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/>
17 </feature>
18+ <feature name='sgx'>
19+ <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000004'/>
20+ </feature>
21 <feature name='bmi1'>
22 <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000008'/>
23 </feature>
24--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml
25+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml
26@@ -1,6 +1,6 @@
27 <!-- Features disabled by QEMU -->
28 <cpudata arch='x86'>
29 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1dc' edx='0xb0600000'/>
30- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x08000000'/>
31+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x08000000'/>
32 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
33 </cpudata>
34--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml
35+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml
36@@ -18,6 +18,7 @@
37 <feature policy='require' name='pdcm'/>
38 <feature policy='require' name='osxsave'/>
39 <feature policy='require' name='tsc_adjust'/>
40+ <feature policy='require' name='sgx'/>
41 <feature policy='require' name='clflushopt'/>
42 <feature policy='require' name='intel-pt'/>
43 <feature policy='require' name='stibp'/>
44--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml
45+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml
46@@ -20,6 +20,7 @@
47 <feature name='pdcm'/>
48 <feature name='osxsave'/>
49 <feature name='tsc_adjust'/>
50+ <feature name='sgx'/>
51 <feature name='clflushopt'/>
52 <feature name='intel-pt'/>
53 <feature name='stibp'/>
54--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml
55+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml
56@@ -1,7 +1,7 @@
57 <!-- Features disabled by QEMU -->
58 <cpudata arch='x86'>
59 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/>
60- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/>
61+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/>
62 <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
63 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
64 </cpudata>
65--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml
66+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml
67@@ -18,6 +18,7 @@
68 <feature policy='require' name='pdcm'/>
69 <feature policy='require' name='osxsave'/>
70 <feature policy='require' name='tsc_adjust'/>
71+ <feature policy='require' name='sgx'/>
72 <feature policy='require' name='clflushopt'/>
73 <feature policy='require' name='intel-pt'/>
74 <feature policy='require' name='xsaves'/>
75--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml
76+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml
77@@ -20,6 +20,7 @@
78 <feature name='pdcm'/>
79 <feature name='osxsave'/>
80 <feature name='tsc_adjust'/>
81+ <feature name='sgx'/>
82 <feature name='clflushopt'/>
83 <feature name='intel-pt'/>
84 <feature name='xsaves'/>
85--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml
86+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml
87@@ -1,6 +1,6 @@
88 <!-- Features disabled by QEMU -->
89 <cpudata arch='x86'>
90 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c19c' edx='0xb0600000'/>
91- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/>
92+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/>
93 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
94 </cpudata>
95--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
96+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
97@@ -17,6 +17,7 @@
98 <feature policy='require' name='pdcm'/>
99 <feature policy='require' name='osxsave'/>
100 <feature policy='require' name='tsc_adjust'/>
101+ <feature policy='require' name='sgx'/>
102 <feature policy='require' name='clflushopt'/>
103 <feature policy='require' name='intel-pt'/>
104 <feature policy='require' name='md-clear'/>
105--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
106+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
107@@ -19,6 +19,7 @@
108 <feature name='pdcm'/>
109 <feature name='osxsave'/>
110 <feature name='tsc_adjust'/>
111+ <feature name='sgx'/>
112 <feature name='clflushopt'/>
113 <feature name='intel-pt'/>
114 <feature name='md-clear'/>
115--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml
116+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml
117@@ -1,6 +1,6 @@
118 <!-- Features disabled by QEMU -->
119 <cpudata arch='x86'>
120 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/>
121- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x08000000'/>
122+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x08000000'/>
123 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
124 </cpudata>
125--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
126+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
127@@ -18,6 +18,7 @@
128 <feature policy='require' name='pdcm'/>
129 <feature policy='require' name='osxsave'/>
130 <feature policy='require' name='tsc_adjust'/>
131+ <feature policy='require' name='sgx'/>
132 <feature policy='require' name='clflushopt'/>
133 <feature policy='require' name='intel-pt'/>
134 <feature policy='require' name='stibp'/>
135--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
136+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
137@@ -20,6 +20,7 @@
138 <feature name='pdcm'/>
139 <feature name='osxsave'/>
140 <feature name='tsc_adjust'/>
141+ <feature name='sgx'/>
142 <feature name='clflushopt'/>
143 <feature name='intel-pt'/>
144 <feature name='stibp'/>
145--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml
146+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml
147@@ -1,7 +1,7 @@
148 <!-- Features disabled by QEMU -->
149 <cpudata arch='x86'>
150 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0804c1fc' edx='0xb0600000'/>
151- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001000' ecx='0x00400010' edx='0x00000010'/>
152+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001004' ecx='0x00400010' edx='0x00000010'/>
153 <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/>
154 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
155 </cpudata>
156--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
157+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
158@@ -19,6 +19,7 @@
159 <feature policy='require' name='dca'/>
160 <feature policy='require' name='osxsave'/>
161 <feature policy='require' name='tsc_adjust'/>
162+ <feature policy='require' name='sgx'/>
163 <feature policy='require' name='cmt'/>
164 <feature policy='require' name='avx512ifma'/>
165 <feature policy='require' name='intel-pt'/>
166--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
167+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
168@@ -21,6 +21,7 @@
169 <feature name='dca'/>
170 <feature name='osxsave'/>
171 <feature name='tsc_adjust'/>
172+ <feature name='sgx'/>
173 <feature name='cmt'/>
174 <feature name='avx512ifma'/>
175 <feature name='intel-pt'/>
176--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml
177+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml
178@@ -1,7 +1,7 @@
179 <!-- Features disabled by QEMU -->
180 <cpudata arch='x86'>
181 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/>
182- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/>
183+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/>
184 <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
185 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
186 </cpudata>
187--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
188+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
189@@ -18,6 +18,7 @@
190 <feature policy='require' name='pdcm'/>
191 <feature policy='require' name='osxsave'/>
192 <feature policy='require' name='tsc_adjust'/>
193+ <feature policy='require' name='sgx'/>
194 <feature policy='require' name='clflushopt'/>
195 <feature policy='require' name='intel-pt'/>
196 <feature policy='require' name='md-clear'/>
197--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
198+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
199@@ -20,6 +20,7 @@
200 <feature name='pdcm'/>
201 <feature name='osxsave'/>
202 <feature name='tsc_adjust'/>
203+ <feature name='sgx'/>
204 <feature name='clflushopt'/>
205 <feature name='intel-pt'/>
206 <feature name='md-clear'/>
207--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml
208+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml
209@@ -1,6 +1,6 @@
210 <!-- Features disabled by QEMU -->
211 <cpudata arch='x86'>
212 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1dc' edx='0xb0600000'/>
213- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/>
214+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/>
215 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
216 </cpudata>
217--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml
218+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml
219@@ -18,6 +18,7 @@
220 <feature policy='require' name='pdcm'/>
221 <feature policy='require' name='osxsave'/>
222 <feature policy='require' name='tsc_adjust'/>
223+ <feature policy='require' name='sgx'/>
224 <feature policy='require' name='clflushopt'/>
225 <feature policy='require' name='intel-pt'/>
226 <feature policy='require' name='xsaves'/>
227--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml
228+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml
229@@ -20,6 +20,7 @@
230 <feature name='pdcm'/>
231 <feature name='osxsave'/>
232 <feature name='tsc_adjust'/>
233+ <feature name='sgx'/>
234 <feature name='clflushopt'/>
235 <feature name='intel-pt'/>
236 <feature name='xsaves'/>
diff --git a/debian/patches/ubuntu/lp-2028057-09-add-missing-feature-sgxlc.patch b/debian/patches/ubuntu/lp-2028057-09-add-missing-feature-sgxlc.patch
0new file mode 100644237new file mode 100644
index 0000000..497db74
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-09-add-missing-feature-sgxlc.patch
@@ -0,0 +1,83 @@
1Description: Add cpu feature sgxlc.
2 This patch adds the feature definition for SGX LC, and adds the feature to the
3 relevant existing processors - i7-8700 and IceLake Server.
4Author: Tim Wiederhake <twiederh@redhat.com>
5Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/6e84509cde99bfa2e9854e0d2c38bfe2b13340c0
6Bug-Ubuntu: https://launchpad.net/bugs/2028057
7Forwarded: not-needed
8Last-Update: 2023-11-29
9---
10This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
11--- a/src/cpu_map/x86_features.xml
12+++ b/src/cpu_map/x86_features.xml
13@@ -343,6 +343,9 @@
14 <feature name='movdir64b'>
15 <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x10000000'/>
16 </feature>
17+ <feature name='sgxlc'>
18+ <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x40000000'/>
19+ </feature>
20
21 <feature name='avx512-4vnniw'>
22 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000004'/>
23--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml
24+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml
25@@ -1,6 +1,6 @@
26 <!-- Features disabled by QEMU -->
27 <cpudata arch='x86'>
28 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/>
29- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x08000000'/>
30+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x40000000' edx='0x08000000'/>
31 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
32 </cpudata>
33--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
34+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
35@@ -21,6 +21,7 @@
36 <feature policy='require' name='sgx'/>
37 <feature policy='require' name='clflushopt'/>
38 <feature policy='require' name='intel-pt'/>
39+ <feature policy='require' name='sgxlc'/>
40 <feature policy='require' name='stibp'/>
41 <feature policy='require' name='ssbd'/>
42 <feature policy='require' name='xsaves'/>
43--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
44+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
45@@ -23,6 +23,7 @@
46 <feature name='sgx'/>
47 <feature name='clflushopt'/>
48 <feature name='intel-pt'/>
49+ <feature name='sgxlc'/>
50 <feature name='stibp'/>
51 <feature name='ssbd'/>
52 <feature name='xsaves'/>
53--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml
54+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml
55@@ -1,7 +1,7 @@
56 <!-- Features disabled by QEMU -->
57 <cpudata arch='x86'>
58 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0804c1fc' edx='0xb0600000'/>
59- <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001004' ecx='0x00400010' edx='0x00000010'/>
60+ <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001004' ecx='0x40400010' edx='0x00000010'/>
61 <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/>
62 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
63 </cpudata>
64--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
65+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
66@@ -26,6 +26,7 @@
67 <feature policy='require' name='sha-ni'/>
68 <feature policy='require' name='ospke'/>
69 <feature policy='require' name='rdpid'/>
70+ <feature policy='require' name='sgxlc'/>
71 <feature policy='require' name='fsrm'/>
72 <feature policy='require' name='stibp'/>
73 <feature policy='require' name='arch-capabilities'/>
74--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
75+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
76@@ -28,6 +28,7 @@
77 <feature name='sha-ni'/>
78 <feature name='ospke'/>
79 <feature name='rdpid'/>
80+ <feature name='sgxlc'/>
81 <feature name='fsrm'/>
82 <feature name='stibp'/>
83 <feature name='arch-capabilities'/>
diff --git a/debian/patches/ubuntu/lp-2028057-10-add-missing-feature-sgx-exinfo.patch b/debian/patches/ubuntu/lp-2028057-10-add-missing-feature-sgx-exinfo.patch
0new file mode 10064484new file mode 100644
index 0000000..c7c1b5a
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-10-add-missing-feature-sgx-exinfo.patch
@@ -0,0 +1,22 @@
1Description: Add cpu feature sgx-exinfo.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/4b5c9678d17f135e77ddab7c2643949fb2408048
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -418,6 +418,11 @@
12 <cpuid eax_in='0x0f' ecx_in='0x01' edx='0x00000004'/>
13 </feature>
14
15+ <!-- cpuid level 0x00000012 ecx 0x0 features -->
16+ <feature name='sgx-exinfo'>
17+ <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/>
18+ </feature>
19+
20 <!-- extended features, EDX -->
21 <feature name='syscall'>
22 <cpuid eax_in='0x80000001' edx='0x00000800'/>
diff --git a/debian/patches/ubuntu/lp-2028057-11-add-missing-feature-sgx1.patch b/debian/patches/ubuntu/lp-2028057-11-add-missing-feature-sgx1.patch
0new file mode 10064423new file mode 100644
index 0000000..356703c
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-11-add-missing-feature-sgx1.patch
@@ -0,0 +1,21 @@
1Description: Add cpu feature sgx1.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/5d9cabd0c7f67f4a7a4d21bb965ce1167ae02945
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -419,6 +419,10 @@
12 </feature>
13
14 <!-- cpuid level 0x00000012 ecx 0x0 features -->
15+ <feature name='sgx1'>
16+ <cpuid eax_in='0x12' ecx_in='0x00' eax='0x00000001'/>
17+ </feature>
18+
19 <feature name='sgx-exinfo'>
20 <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/>
21 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-12-add-missing-feature-sgx2.patch b/debian/patches/ubuntu/lp-2028057-12-add-missing-feature-sgx2.patch
0new file mode 10064422new file mode 100644
index 0000000..6dba3c6
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-12-add-missing-feature-sgx2.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature sgx2.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/4b5c9678d17f135e77ddab7c2643949fb2408048
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -422,6 +422,9 @@
12 <feature name='sgx1'>
13 <cpuid eax_in='0x12' ecx_in='0x00' eax='0x00000001'/>
14 </feature>
15+ <feature name='sgx2'>
16+ <cpuid eax_in='0x12' ecx_in='0x00' eax='0x00000002'/>
17+ </feature>
18
19 <feature name='sgx-exinfo'>
20 <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/>
diff --git a/debian/patches/ubuntu/lp-2028057-13-add-missing-feature-sgx-additional.patch b/debian/patches/ubuntu/lp-2028057-13-add-missing-feature-sgx-additional.patch
0new file mode 10064421new file mode 100644
index 0000000..6bcd7df
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-13-add-missing-feature-sgx-additional.patch
@@ -0,0 +1,36 @@
1Description: Add additional sgx-related features.
2 Add additional sgx features - sgx-debug, sgx-mode64, sgx-provisionkey,
3 sgx-tokenkey, and sgx-kss.
4Author: Tim Wiederhake <twiederh@redhat.com>
5Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/e864f3b50a3ca57b0ebb33677b94e1da638147d9
6Bug-Ubuntu: https://launchpad.net/bugs/2028057
7Forwarded: not-needed
8Last-Update: 2023-11-29
9---
10This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
11--- a/src/cpu_map/x86_features.xml
12+++ b/src/cpu_map/x86_features.xml
13@@ -430,6 +430,23 @@
14 <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/>
15 </feature>
16
17+ <!-- cpuid level 0x00000012 ecx 0x1 features -->
18+ <feature name='sgx-debug'>
19+ <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000002'/>
20+ </feature>
21+ <feature name='sgx-mode64'>
22+ <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000004'/>
23+ </feature>
24+ <feature name='sgx-provisionkey'>
25+ <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000010'/>
26+ </feature>
27+ <feature name='sgx-tokenkey'>
28+ <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000020'/>
29+ </feature>
30+ <feature name='sgx-kss'>
31+ <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000080'/>
32+ </feature>
33+
34 <!-- extended features, EDX -->
35 <feature name='syscall'>
36 <cpuid eax_in='0x80000001' edx='0x00000800'/>
diff --git a/debian/patches/ubuntu/lp-2028057-14-add-missing-feature-bus-lock-detect.patch b/debian/patches/ubuntu/lp-2028057-14-add-missing-feature-bus-lock-detect.patch
0new file mode 10064437new file mode 100644
index 0000000..ba00ffa
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-14-add-missing-feature-bus-lock-detect.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature bus-lock-detect.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/1f3cd74e4a8770ed69af0241c600c62a3f3ddb22
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -334,6 +334,9 @@
12 <feature name='rdpid'>
13 <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00400000'/>
14 </feature>
15+ <feature name='bus-lock-detect'>
16+ <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x01000000'/>
17+ </feature>
18 <feature name='cldemote'>
19 <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x02000000'/>
20 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-15-add-missing-feature-pks.patch b/debian/patches/ubuntu/lp-2028057-15-add-missing-feature-pks.patch
0new file mode 10064421new file mode 100644
index 0000000..eafdfcc
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-15-add-missing-feature-pks.patch
@@ -0,0 +1,52 @@
1Description: Add cpu feature pks.
2 Add the pks feature definition along with its entries in QEMU feature lists,
3 ignoring the 7.* entries from this commit upstream.
4Author: Tim Wiederhake <twiederh@redhat.com>
5Origin: backport, https://gitlab.com/libvirt/libvirt/-/commit/40d6a6d98702452df7c034bfe81e3a334f0f8e45
6Bug-Ubuntu: https://launchpad.net/bugs/2028057
7Forwarded: not-needed
8Last-Update: 2023-11-29
9---
10This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
11--- a/src/cpu_map/x86_features.xml
12+++ b/src/cpu_map/x86_features.xml
13@@ -349,6 +349,9 @@
14 <feature name='sgxlc'>
15 <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x40000000'/>
16 </feature>
17+ <feature name='pks'>
18+ <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x80000000'/>
19+ </feature>
20
21 <feature name='avx512-4vnniw'>
22 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000004'/>
23--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
24+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
25@@ -48,6 +48,7 @@
26 <feature policy='require' name='clwb'/>
27 <feature policy='require' name='pku'/>
28 <feature policy='require' name='la57'/>
29+ <feature policy='require' name='pks'/>
30 <feature policy='require' name='3dnowext'/>
31 <feature policy='require' name='3dnow'/>
32 <feature policy='require' name='npt'/>
33--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
34+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
35@@ -48,6 +48,7 @@
36 <feature policy='require' name='clwb'/>
37 <feature policy='require' name='pku'/>
38 <feature policy='require' name='la57'/>
39+ <feature policy='require' name='pks'/>
40 <feature policy='require' name='3dnowext'/>
41 <feature policy='require' name='3dnow'/>
42 <feature policy='require' name='npt'/>
43--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
44+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
45@@ -48,6 +48,7 @@
46 <feature policy='require' name='clwb'/>
47 <feature policy='require' name='pku'/>
48 <feature policy='require' name='la57'/>
49+ <feature policy='require' name='pks'/>
50 <feature policy='require' name='3dnowext'/>
51 <feature policy='require' name='3dnow'/>
52 <feature policy='require' name='npt'/>
diff --git a/debian/patches/ubuntu/lp-2028057-16-add-missing-feature-avx512-vp2intersect.patch b/debian/patches/ubuntu/lp-2028057-16-add-missing-feature-avx512-vp2intersect.patch
0new file mode 10064453new file mode 100644
index 0000000..eb264bf
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-16-add-missing-feature-avx512-vp2intersect.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature avx512-vp2intersect.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/3306c6ded067c79ea96cbf1b59d8001560448230
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -362,6 +362,9 @@
12 <feature name='fsrm'>
13 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000010'/>
14 </feature>
15+ <feature name='avx512-vp2intersect'>
16+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000100'/>
17+ </feature>
18 <feature name='md-clear'>
19 <alias name='md_clear' source='linux'/>
20 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/>
diff --git a/debian/patches/ubuntu/lp-2028057-17-add-missing-feature-avx512-fp16.patch b/debian/patches/ubuntu/lp-2028057-17-add-missing-feature-avx512-fp16.patch
0new file mode 10064421new file mode 100644
index 0000000..2b0700f
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-17-add-missing-feature-avx512-fp16.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature avx512-fp16.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/18ebce7c5320e200a2b2c4a256d02ab087d2bac5
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -375,6 +375,9 @@
12 <feature name='amx-bf16'>
13 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00400000'/>
14 </feature>
15+ <feature name='avx512-fp16'>
16+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00800000'/>
17+ </feature>
18 <feature name='amx-tile'>
19 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x01000000'/>
20 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-18-add-missing-feature-serialize.patch b/debian/patches/ubuntu/lp-2028057-18-add-missing-feature-serialize.patch
0new file mode 10064421new file mode 100644
index 0000000..aa8c587
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-18-add-missing-feature-serialize.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature serialize.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/3f73c3c4fbcd81f3a7e29f3bffa9e3b55f39f041
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -369,6 +369,9 @@
12 <alias name='md_clear' source='linux'/>
13 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/>
14 </feature>
15+ <feature name='serialize'>
16+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00004000'/>
17+ </feature>
18 <feature name='pconfig'>
19 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
20 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-19-add-missing-feature-tsx-ldtrk.patch b/debian/patches/ubuntu/lp-2028057-19-add-missing-feature-tsx-ldtrk.patch
0new file mode 10064421new file mode 100644
index 0000000..db71f0c
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-19-add-missing-feature-tsx-ldtrk.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature tsx-ldtrk.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/1e309109677f192a1dc47ef0a2fc16b31450f129
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -372,6 +372,9 @@
12 <feature name='serialize'>
13 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00004000'/>
14 </feature>
15+ <feature name='tsx-ldtrk'>
16+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00010000'/>
17+ </feature>
18 <feature name='pconfig'>
19 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
20 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-20-add-missing-feature-arch-lbr.patch b/debian/patches/ubuntu/lp-2028057-20-add-missing-feature-arch-lbr.patch
0new file mode 10064421new file mode 100644
index 0000000..a82f9c5
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-20-add-missing-feature-arch-lbr.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature arch-lbr.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/4ba1e382f7d5aeb650a9bf367cd760ac824e2171
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -378,6 +378,9 @@
12 <feature name='pconfig'>
13 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
14 </feature>
15+ <feature name='arch-lbr'>
16+ <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00080000'/>
17+ </feature>
18 <feature name='amx-bf16'>
19 <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00400000'/>
20 </feature>
diff --git a/debian/patches/ubuntu/lp-2028057-21-add-missing-feature-xfd.patch b/debian/patches/ubuntu/lp-2028057-21-add-missing-feature-xfd.patch
0new file mode 10064421new file mode 100644
index 0000000..87cecf1
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-21-add-missing-feature-xfd.patch
@@ -0,0 +1,20 @@
1Description: Add cpu feature xfd.
2Author: Tim Wiederhake <twiederh@redhat.com>
3Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/29b0b9bb0eb966f9c49b78b97101c6623306a39a
4Bug-Ubuntu: https://launchpad.net/bugs/2028057
5Forwarded: not-needed
6Last-Update: 2023-11-29
7---
8This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
9--- a/src/cpu_map/x86_features.xml
10+++ b/src/cpu_map/x86_features.xml
11@@ -430,6 +430,9 @@
12 <feature name='xsaves' migratable='no'>
13 <cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000008'/>
14 </feature>
15+ <feature name='xfd'>
16+ <cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000010'/>
17+ </feature>
18
19 <!-- cpuid level 0x0000000f:1 (edx) -->
20 <feature name='mbm_total'>
diff --git a/debian/patches/ubuntu/lp-2028057-22-add-missing-feature-intel-pt-lip.patch b/debian/patches/ubuntu/lp-2028057-22-add-missing-feature-intel-pt-lip.patch
0new file mode 10064421new file mode 100644
index 0000000..5dd6160
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-22-add-missing-feature-intel-pt-lip.patch
@@ -0,0 +1,54 @@
1Description: Add cpu feature intel-pt-lip.
2 This patch adds the feature definition for Intel pt-lip, and adds the feature
3 to the Intel Atom P5362 processor.
4Author: Tim Wiederhake <twiederh@redhat.com>
5Origin: upstream, https://gitlab.com/libvirt/libvirt/-/commit/501e7c780bbec6eddd8bc7bcb13fdafba94c5358
6Bug-Ubuntu: https://launchpad.net/bugs/2028057
7Forwarded: not-needed
8Last-Update: 2023-11-29
9---
10This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
11--- a/src/cpu_map/x86_features.xml
12+++ b/src/cpu_map/x86_features.xml
13@@ -471,6 +471,11 @@
14 <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000080'/>
15 </feature>
16
17+ <!-- cpuid level 0x00000014 ecx 0x0 features -->
18+ <feature name='intel-pt-lip'>
19+ <cpuid eax_in='0x14' ecx_in='0x00' ecx='0x80000000'/>
20+ </feature>
21+
22 <!-- extended features, EDX -->
23 <feature name='syscall'>
24 <cpuid eax_in='0x80000001' edx='0x00000800'/>
25--- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml
26+++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml
27@@ -3,6 +3,7 @@
28 <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x080041dc' edx='0xb0600000'/>
29 <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001000' ecx='0x00000020' edx='0x40000000'/>
30 <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/>
31+ <cpuid eax_in='0x00000014' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x80000000' edx='0x00000000'/>
32 <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
33 <msr index='0xcf' edx='0x00000000' eax='0x00000020'/>
34 <msr index='0x10a' edx='0x00000000' eax='0x00000100'/>
35--- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml
36+++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml
37@@ -27,6 +27,7 @@
38 <feature policy='require' name='xsaves'/>
39 <feature policy='require' name='mbm_total'/>
40 <feature policy='require' name='mbm_local'/>
41+ <feature policy='require' name='intel-pt-lip'/>
42 <feature policy='require' name='invtsc'/>
43 <feature policy='require' name='rdctl-no'/>
44 <feature policy='require' name='ibrs-all'/>
45--- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml
46+++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml
47@@ -56,6 +56,7 @@
48 <feature name='xsaves'/>
49 <feature name='mbm_total'/>
50 <feature name='mbm_local'/>
51+ <feature name='intel-pt-lip'/>
52 <feature name='rdtscp'/>
53 <feature name='3dnowprefetch'/>
54 <feature name='invtsc'/>
diff --git a/debian/patches/ubuntu/lp-2028057-23-add-new-CPU-model-Intel-SapphireRapids.patch b/debian/patches/ubuntu/lp-2028057-23-add-new-CPU-model-Intel-SapphireRapids.patch
0new file mode 10064455new file mode 100644
index 0000000..30085cd
--- /dev/null
+++ b/debian/patches/ubuntu/lp-2028057-23-add-new-CPU-model-Intel-SapphireRapids.patch
@@ -0,0 +1,310 @@
1Description: Add new CPU model SapphireRapids
2 The new CPU model mostly inherits features from Icelake-Server, while
3 adding new features:
4 - AMX (Advance Matrix eXtensions)
5 - Bus Lock Debug Exception
6 and new instructions:
7 - AVX VNNI (Vector Neural Network Instruction):
8 - VPDPBUS: Multiply and Add Unsigned and Signed Bytes
9 - VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation
10 - VPDPWSSD: Multiply and Add Signed Word Integers
11 - VPDPWSSDS: Multiply and Add Signed Integers with Saturation
12 - FP16: Replicates existing AVX512 computational SP (FP32) instructions
13 using FP16 instead of FP32 for ~2X performance gain
14 - SERIALIZE: Provide software with a simple way to force the processor to
15 complete all modifications, faster, allowed in all privilege levels and
16 not causing an unconditional VM exit
17 - TSX Suspend Load Address Tracking: Allows programmers to choose which
18 memory accesses do not need to be tracked in the TSX read set
19 - AVX512_BF16: Vector Neural Network Instructions supporting BFLOAT16
20 inputs and conversion instructions from IEEE single precision
21Author: Wang, Lei <lei4.wang@intel.com>
22Origin: other, https://lore.kernel.org/all/20220812055751.14553-1-lei4.wang@intel.com/
23Bug-Ubuntu: https://launchpad.net/bugs/2028057
24Forwarded: not-needed
25Last-Update: 2023-11-29
26---
27This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
28--- a/src/cpu_map/index.xml
29+++ b/src/cpu_map/index.xml
30@@ -56,6 +56,8 @@
31 <include filename='x86_Icelake-Server-noTSX.xml'/>
32 <include filename='x86_Cooperlake.xml'/>
33 <include filename='x86_Snowridge.xml'/>
34+ <include filename='x86_SapphireRapids.xml'/>
35+ <include filename='x86_SapphireRapids-noTSX.xml'/>
36
37 <!-- AMD CPUs -->
38 <include filename='x86_athlon.xml'/>
39--- a/src/cpu_map/meson.build
40+++ b/src/cpu_map/meson.build
41@@ -67,6 +67,8 @@
42 'x86_qemu64.xml',
43 'x86_SandyBridge-IBRS.xml',
44 'x86_SandyBridge.xml',
45+ 'x86_SapphireRapids.xml',
46+ 'x86_SapphireRapids-noTSX.xml',
47 'x86_Skylake-Client-IBRS.xml',
48 'x86_Skylake-Client-noTSX-IBRS.xml',
49 'x86_Skylake-Client.xml',
50--- a/src/cpu_map/sync_qemu_models_i386.py
51+++ b/src/cpu_map/sync_qemu_models_i386.py
52@@ -54,6 +54,7 @@
53 "CPUID_7_0_ECX_AVX512_VBMI": "avx512vbmi",
54 "CPUID_7_0_ECX_AVX512VNNI": "avx512vnni",
55 "CPUID_7_0_ECX_AVX512_VPOPCNTDQ": "avx512-vpopcntdq",
56+ "CPUID_7_0_ECX_BUS_LOCK_DETECT": "bus-lock-detect",
57 "CPUID_7_0_ECX_CLDEMOTE": "cldemote",
58 "CPUID_7_0_ECX_GFNI": "gfni",
59 "CPUID_7_0_ECX_LA57": "la57",
60@@ -67,16 +68,20 @@
61 "CPUID_7_0_EDX_ARCH_CAPABILITIES": "arch-capabilities",
62 "CPUID_7_0_EDX_AVX512_4FMAPS": "avx512-4fmaps",
63 "CPUID_7_0_EDX_AVX512_4VNNIW": "avx512-4vnniw",
64+ "CPUID_7_0_EDX_AVX512_FP16": "avx512-fp16",
65 "CPUID_7_0_EDX_CORE_CAPABILITY": "core-capability",
66 "CPUID_7_0_EDX_FSRM": "fsrm",
67+ "CPUID_7_0_EDX_SERIALIZE": "serialize",
68 "CPUID_7_0_EDX_SPEC_CTRL": "spec-ctrl",
69 "CPUID_7_0_EDX_SPEC_CTRL_SSBD": "ssbd",
70 "CPUID_7_0_EDX_STIBP": "stibp",
71+ "CPUID_7_0_EDX_TSX_LDTRK": "tsx-ldtrk",
72 "CPUID_7_0_EDX_AMX_BF16": "amx-bf16",
73 "CPUID_7_0_EDX_AMX_TILE": "amx-tile",
74 "CPUID_7_0_EDX_AMX_INT8": "amx-int8",
75 "CPUID_7_1_EAX_AVX512_BF16": "avx512-bf16",
76 "CPUID_7_1_EAX_AVX_VNNI": "avx-vnni",
77+ "CPUID_D_1_EAX_XFD": "xfd",
78 "CPUID_8000_0008_EBX_AMD_SSBD": "amd-ssbd",
79 "CPUID_8000_0008_EBX_CLZERO": "clzero",
80 "CPUID_8000_0008_EBX_IBPB": "ibpb",
81--- /dev/null
82+++ b/src/cpu_map/x86_SapphireRapids-noTSX.xml
83@@ -0,0 +1,111 @@
84+<cpus>
85+ <model name='SapphireRapids-noTSX'>
86+ <decode host='on' guest='off'/>
87+ <signature family='6' model='143'/>
88+ <vendor name='Intel'/>
89+ <feature name='3dnowprefetch'/>
90+ <feature name='abm'/>
91+ <feature name='adx'/>
92+ <feature name='aes'/>
93+ <feature name='amx-bf16'/>
94+ <feature name='amx-int8'/>
95+ <feature name='amx-tile'/>
96+ <feature name='apic'/>
97+ <feature name='arat'/>
98+ <feature name='arch-capabilities'/>
99+ <feature name='avx'/>
100+ <feature name='avx-vnni'/>
101+ <feature name='avx2'/>
102+ <feature name='avx512-bf16'/>
103+ <feature name='avx512-fp16'/>
104+ <feature name='avx512-vpopcntdq'/>
105+ <feature name='avx512bitalg'/>
106+ <feature name='avx512bw'/>
107+ <feature name='avx512cd'/>
108+ <feature name='avx512dq'/>
109+ <feature name='avx512f'/>
110+ <feature name='avx512ifma'/>
111+ <feature name='avx512vbmi'/>
112+ <feature name='avx512vbmi2'/>
113+ <feature name='avx512vl'/>
114+ <feature name='avx512vnni'/>
115+ <feature name='bmi1'/>
116+ <feature name='bmi2'/>
117+ <feature name='bus-lock-detect'/>
118+ <feature name='clflush'/>
119+ <feature name='clflushopt'/>
120+ <feature name='clwb'/>
121+ <feature name='cmov'/>
122+ <feature name='cx16'/>
123+ <feature name='cx8'/>
124+ <feature name='de'/>
125+ <feature name='erms'/>
126+ <feature name='f16c'/>
127+ <feature name='fma'/>
128+ <feature name='fpu'/>
129+ <feature name='fsgsbase'/>
130+ <feature name='fsrm'/>
131+ <feature name='fxsr'/>
132+ <feature name='gfni'/>
133+ <feature name='ibrs-all'/>
134+ <feature name='invpcid'/>
135+ <feature name='la57'/>
136+ <feature name='lahf_lm'/>
137+ <feature name='lm'/>
138+ <feature name='mca'/>
139+ <feature name='mce'/>
140+ <feature name='mds-no'/>
141+ <feature name='mmx'/>
142+ <feature name='movbe'/>
143+ <feature name='msr'/>
144+ <feature name='mtrr'/>
145+ <feature name='nx'/>
146+ <feature name='pae'/>
147+ <feature name='pat'/>
148+ <feature name='pcid'/>
149+ <feature name='pclmuldq'/>
150+ <feature name='pdpe1gb'/>
151+ <feature name='pge'/>
152+ <feature name='pku'/>
153+ <feature name='pni'/>
154+ <feature name='popcnt'/>
155+ <feature name='pschange-mc-no'/>
156+ <feature name='pse'/>
157+ <feature name='pse36'/>
158+ <feature name='rdctl-no'/>
159+ <feature name='rdpid'/>
160+ <feature name='rdrand'/>
161+ <feature name='rdseed'/>
162+ <feature name='rdtscp'/>
163+ <feature name='sep'/>
164+ <feature name='serialize'/>
165+ <feature name='sha-ni'/>
166+ <feature name='skip-l1dfl-vmentry'/>
167+ <feature name='smap'/>
168+ <feature name='smep'/>
169+ <feature name='spec-ctrl'/>
170+ <feature name='ssbd'/>
171+ <feature name='sse'/>
172+ <feature name='sse2'/>
173+ <feature name='sse4.1'/>
174+ <feature name='sse4.2'/>
175+ <feature name='ssse3'/>
176+ <feature name='syscall'/>
177+ <feature name='taa-no'/>
178+ <feature name='tsc'/>
179+ <feature name='tsc-deadline'/>
180+ <feature name='tsx-ldtrk'/>
181+ <feature name='umip'/>
182+ <feature name='vaes'/>
183+ <feature name='vme'/>
184+ <feature name='vpclmulqdq'/>
185+ <feature name='wbnoinvd'/>
186+ <feature name='x2apic'/>
187+ <feature name='xfd'/>
188+ <feature name='xgetbv1'/>
189+ <feature name='xsave'/>
190+ <feature name='xsavec'/>
191+ <feature name='xsaveopt'/>
192+ <feature name='xsaves'/>
193+ </model>
194+</cpus>
195--- /dev/null
196+++ b/src/cpu_map/x86_SapphireRapids.xml
197@@ -0,0 +1,113 @@
198+<cpus>
199+ <model name='SapphireRapids'>
200+ <decode host='on' guest='on'/>
201+ <signature family='6' model='143'/>
202+ <vendor name='Intel'/>
203+ <feature name='3dnowprefetch'/>
204+ <feature name='abm'/>
205+ <feature name='adx'/>
206+ <feature name='aes'/>
207+ <feature name='amx-bf16'/>
208+ <feature name='amx-int8'/>
209+ <feature name='amx-tile'/>
210+ <feature name='apic'/>
211+ <feature name='arat'/>
212+ <feature name='arch-capabilities'/>
213+ <feature name='avx'/>
214+ <feature name='avx-vnni'/>
215+ <feature name='avx2'/>
216+ <feature name='avx512-bf16'/>
217+ <feature name='avx512-fp16'/>
218+ <feature name='avx512-vpopcntdq'/>
219+ <feature name='avx512bitalg'/>
220+ <feature name='avx512bw'/>
221+ <feature name='avx512cd'/>
222+ <feature name='avx512dq'/>
223+ <feature name='avx512f'/>
224+ <feature name='avx512ifma'/>
225+ <feature name='avx512vbmi'/>
226+ <feature name='avx512vbmi2'/>
227+ <feature name='avx512vl'/>
228+ <feature name='avx512vnni'/>
229+ <feature name='bmi1'/>
230+ <feature name='bmi2'/>
231+ <feature name='bus-lock-detect'/>
232+ <feature name='clflush'/>
233+ <feature name='clflushopt'/>
234+ <feature name='clwb'/>
235+ <feature name='cmov'/>
236+ <feature name='cx16'/>
237+ <feature name='cx8'/>
238+ <feature name='de'/>
239+ <feature name='erms'/>
240+ <feature name='f16c'/>
241+ <feature name='fma'/>
242+ <feature name='fpu'/>
243+ <feature name='fsgsbase'/>
244+ <feature name='fsrm'/>
245+ <feature name='fxsr'/>
246+ <feature name='gfni'/>
247+ <feature name='hle'/>
248+ <feature name='ibrs-all'/>
249+ <feature name='invpcid'/>
250+ <feature name='la57'/>
251+ <feature name='lahf_lm'/>
252+ <feature name='lm'/>
253+ <feature name='mca'/>
254+ <feature name='mce'/>
255+ <feature name='mds-no'/>
256+ <feature name='mmx'/>
257+ <feature name='movbe'/>
258+ <feature name='msr'/>
259+ <feature name='mtrr'/>
260+ <feature name='nx'/>
261+ <feature name='pae'/>
262+ <feature name='pat'/>
263+ <feature name='pcid'/>
264+ <feature name='pclmuldq'/>
265+ <feature name='pdpe1gb'/>
266+ <feature name='pge'/>
267+ <feature name='pku'/>
268+ <feature name='pni'/>
269+ <feature name='popcnt'/>
270+ <feature name='pschange-mc-no'/>
271+ <feature name='pse'/>
272+ <feature name='pse36'/>
273+ <feature name='rdctl-no'/>
274+ <feature name='rdpid'/>
275+ <feature name='rdrand'/>
276+ <feature name='rdseed'/>
277+ <feature name='rdtscp'/>
278+ <feature name='rtm'/>
279+ <feature name='sep'/>
280+ <feature name='serialize'/>
281+ <feature name='sha-ni'/>
282+ <feature name='skip-l1dfl-vmentry'/>
283+ <feature name='smap'/>
284+ <feature name='smep'/>
285+ <feature name='spec-ctrl'/>
286+ <feature name='ssbd'/>
287+ <feature name='sse'/>
288+ <feature name='sse2'/>
289+ <feature name='sse4.1'/>
290+ <feature name='sse4.2'/>
291+ <feature name='ssse3'/>
292+ <feature name='syscall'/>
293+ <feature name='taa-no'/>
294+ <feature name='tsc'/>
295+ <feature name='tsc-deadline'/>
296+ <feature name='tsx-ldtrk'/>
297+ <feature name='umip'/>
298+ <feature name='vaes'/>
299+ <feature name='vme'/>
300+ <feature name='vpclmulqdq'/>
301+ <feature name='wbnoinvd'/>
302+ <feature name='x2apic'/>
303+ <feature name='xfd'/>
304+ <feature name='xgetbv1'/>
305+ <feature name='xsave'/>
306+ <feature name='xsavec'/>
307+ <feature name='xsaveopt'/>
308+ <feature name='xsaves'/>
309+ </model>
310+</cpus>

Subscribers

People subscribed via source and target branches