修订版 | 1bf84a1e2e8f3262c63469b11fb641fcc9747e6a (tree) |
---|---|
时间 | 2020-03-06 19:05:12 |
作者 | Kashyap Chamarthy <kchamart@redh...> |
Commiter | Peter Maydell |
docs/system: Convert qemu-cpu-models.texi to rST
This doc was originally written by Daniel P. Berrangé
<berrange@redhat.com>, introduced via commit[1]: 2544e9e4aa (docs: add
guidance on configuring CPU models for x86, 2018-06-27).
In this patch:
[1] https://git.qemu.org/?p=qemu.git;a=commit;h=2544e9e4aa
As part of the conversion, we use a more generic 'author' attribution
for the manpage than we previously had, as agreed with the original
author Dan Berrange.
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20200228153619.9906-16-peter.maydell@linaro.org
Message-id: 20200226113034.6741-15-pbonzini@redhat.com
[Move macros to defs.rst.inc, split in x86 and MIPS parts,
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
[PMM: Move defs.rst.inc setup to its own commit;
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
@@ -216,6 +216,7 @@ F: target/mips/ | ||
216 | 216 | F: default-configs/*mips* |
217 | 217 | F: disas/*mips* |
218 | 218 | F: docs/system/cpu-models-mips.texi |
219 | +F: docs/system/cpu-models-mips.rst.inc | |
219 | 220 | F: hw/intc/mips_gic.c |
220 | 221 | F: hw/mips/ |
221 | 222 | F: hw/misc/mips_* |
@@ -321,6 +322,7 @@ F: tests/tcg/x86_64/ | ||
321 | 322 | F: hw/i386/ |
322 | 323 | F: disas/i386.c |
323 | 324 | F: docs/system/cpu-models-x86.texi |
325 | +F: docs/system/cpu-models-x86.rst.inc | |
324 | 326 | T: git https://github.com/ehabkost/qemu.git x86-next |
325 | 327 | |
326 | 328 | Xtensa TCG CPUs |
@@ -354,7 +354,7 @@ endif | ||
354 | 354 | DOCS+=$(MANUAL_BUILDDIR)/system/qemu-block-drivers.7 |
355 | 355 | DOCS+=docs/interop/qemu-qmp-ref.html docs/interop/qemu-qmp-ref.txt docs/interop/qemu-qmp-ref.7 |
356 | 356 | DOCS+=docs/interop/qemu-ga-ref.html docs/interop/qemu-ga-ref.txt docs/interop/qemu-ga-ref.7 |
357 | -DOCS+=docs/system/qemu-cpu-models.7 | |
357 | +DOCS+=$(MANUAL_BUILDDIR)/system/qemu-cpu-models.7 | |
358 | 358 | DOCS+=$(MANUAL_BUILDDIR)/index.html |
359 | 359 | ifdef CONFIG_VIRTFS |
360 | 360 | DOCS+=$(MANUAL_BUILDDIR)/tools/virtfs-proxy-helper.1 |
@@ -780,7 +780,6 @@ distclean: clean | ||
780 | 780 | rm -f docs/interop/qemu-qmp-ref.txt docs/interop/qemu-ga-ref.txt |
781 | 781 | rm -f docs/interop/qemu-qmp-ref.pdf docs/interop/qemu-ga-ref.pdf |
782 | 782 | rm -f docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html |
783 | - rm -f docs/system/qemu-cpu-models.7 | |
784 | 783 | rm -rf .doctrees |
785 | 784 | $(call clean-manual,devel) |
786 | 785 | $(call clean-manual,interop) |
@@ -861,7 +860,7 @@ ifdef CONFIG_POSIX | ||
861 | 860 | $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man7" |
862 | 861 | $(INSTALL_DATA) docs/interop/qemu-qmp-ref.7 "$(DESTDIR)$(mandir)/man7" |
863 | 862 | $(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu-block-drivers.7 "$(DESTDIR)$(mandir)/man7" |
864 | - $(INSTALL_DATA) docs/system/qemu-cpu-models.7 "$(DESTDIR)$(mandir)/man7" | |
863 | + $(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu-cpu-models.7 "$(DESTDIR)$(mandir)/man7" | |
865 | 864 | ifeq ($(CONFIG_TOOLS),y) |
866 | 865 | $(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/qemu-img.1 "$(DESTDIR)$(mandir)/man1" |
867 | 866 | $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man8" |
@@ -1083,7 +1082,7 @@ $(MANUAL_BUILDDIR)/user/index.html: $(call manual-deps,user) | ||
1083 | 1082 | |
1084 | 1083 | $(call define-manpage-rule,interop,qemu-ga.8) |
1085 | 1084 | |
1086 | -$(call define-manpage-rule,system,qemu-block-drivers.7) | |
1085 | +$(call define-manpage-rule,system,qemu-block-drivers.7 qemu-cpu-models.7) | |
1087 | 1086 | |
1088 | 1087 | $(call define-manpage-rule,tools,\ |
1089 | 1088 | qemu-img.1 qemu-nbd.8 qemu-trace-stap.1\ |
@@ -1112,7 +1111,6 @@ docs/interop/qemu-ga-qapi.texi: qga/qapi-generated/qga-qapi-doc.texi | ||
1112 | 1111 | |
1113 | 1112 | qemu.1: qemu-doc.texi qemu-options.texi qemu-monitor.texi qemu-monitor-info.texi |
1114 | 1113 | qemu.1: docs/system/qemu-option-trace.texi |
1115 | -docs/system/qemu-cpu-models.7: docs/system/qemu-cpu-models.texi docs/system/cpu-models-x86.texi docs/system/cpu-models-mips.texi | |
1116 | 1114 | |
1117 | 1115 | html: qemu-doc.html docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html sphinxdocs |
1118 | 1116 | info: qemu-doc.info docs/interop/qemu-qmp-ref.info docs/interop/qemu-ga-ref.info |
@@ -13,10 +13,14 @@ exec(compile(open(parent_config, "rb").read(), parent_config, 'exec')) | ||
13 | 13 | # This slightly misuses the 'description', but is the best way to get |
14 | 14 | # the manual title to appear in the sidebar. |
15 | 15 | html_theme_options['description'] = u'System Emulation User''s Guide' |
16 | + | |
16 | 17 | # One entry per manual page. List of tuples |
17 | 18 | # (source start file, name, description, authors, manual section). |
18 | 19 | man_pages = [ |
19 | 20 | ('qemu-block-drivers', 'qemu-block-drivers', |
20 | 21 | u'QEMU block drivers reference', |
21 | - ['Fabrice Bellard and the QEMU Project developers'], 7) | |
22 | + ['Fabrice Bellard and the QEMU Project developers'], 7), | |
23 | + ('qemu-cpu-models', 'qemu-cpu-models', | |
24 | + u'QEMU CPU Models', | |
25 | + ['The QEMU Project developers'], 7) | |
22 | 26 | ] |
@@ -0,0 +1,105 @@ | ||
1 | +Supported CPU model configurations on MIPS hosts | |
2 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
3 | + | |
4 | +QEMU supports variety of MIPS CPU models: | |
5 | + | |
6 | +Supported CPU models for MIPS32 hosts | |
7 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
8 | + | |
9 | +The following CPU models are supported for use on MIPS32 hosts. | |
10 | +Administrators / applications are recommended to use the CPU model that | |
11 | +matches the generation of the host CPUs in use. In a deployment with a | |
12 | +mixture of host CPU models between machines, if live migration | |
13 | +compatibility is required, use the newest CPU model that is compatible | |
14 | +across all desired hosts. | |
15 | + | |
16 | +``mips32r6-generic`` | |
17 | + MIPS32 Processor (Release 6, 2015) | |
18 | + | |
19 | +``P5600`` | |
20 | + MIPS32 Processor (P5600, 2014) | |
21 | + | |
22 | +``M14K``, ``M14Kc`` | |
23 | + MIPS32 Processor (M14K, 2009) | |
24 | + | |
25 | +``74Kf`` | |
26 | + MIPS32 Processor (74K, 2007) | |
27 | + | |
28 | +``34Kf`` | |
29 | + MIPS32 Processor (34K, 2006) | |
30 | + | |
31 | +``24Kc``, ``24KEc``, ``24Kf`` | |
32 | + MIPS32 Processor (24K, 2003) | |
33 | + | |
34 | +``4Kc``, ``4Km``, ``4KEcR1``, ``4KEmR1``, ``4KEc``, ``4KEm`` | |
35 | + MIPS32 Processor (4K, 1999) | |
36 | + | |
37 | + | |
38 | +Supported CPU models for MIPS64 hosts | |
39 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
40 | + | |
41 | +The following CPU models are supported for use on MIPS64 hosts. | |
42 | +Administrators / applications are recommended to use the CPU model that | |
43 | +matches the generation of the host CPUs in use. In a deployment with a | |
44 | +mixture of host CPU models between machines, if live migration | |
45 | +compatibility is required, use the newest CPU model that is compatible | |
46 | +across all desired hosts. | |
47 | + | |
48 | +``I6400`` | |
49 | + MIPS64 Processor (Release 6, 2014) | |
50 | + | |
51 | +``Loongson-2F`` | |
52 | + MIPS64 Processor (Loongson 2, 2008) | |
53 | + | |
54 | +``Loongson-2E`` | |
55 | + MIPS64 Processor (Loongson 2, 2006) | |
56 | + | |
57 | +``mips64dspr2`` | |
58 | + MIPS64 Processor (Release 2, 2006) | |
59 | + | |
60 | +``MIPS64R2-generic``, ``5KEc``, ``5KEf`` | |
61 | + MIPS64 Processor (Release 2, 2002) | |
62 | + | |
63 | +``20Kc`` | |
64 | + MIPS64 Processor (20K, 2000 | |
65 | + | |
66 | +``5Kc``, ``5Kf`` | |
67 | + MIPS64 Processor (5K, 1999) | |
68 | + | |
69 | +``VR5432`` | |
70 | + MIPS64 Processor (VR, 1998) | |
71 | + | |
72 | +``R4000`` | |
73 | + MIPS64 Processor (MIPS III, 1991) | |
74 | + | |
75 | + | |
76 | +Supported CPU models for nanoMIPS hosts | |
77 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
78 | + | |
79 | +The following CPU models are supported for use on nanoMIPS hosts. | |
80 | +Administrators / applications are recommended to use the CPU model that | |
81 | +matches the generation of the host CPUs in use. In a deployment with a | |
82 | +mixture of host CPU models between machines, if live migration | |
83 | +compatibility is required, use the newest CPU model that is compatible | |
84 | +across all desired hosts. | |
85 | + | |
86 | +``I7200`` | |
87 | + MIPS I7200 (nanoMIPS, 2018) | |
88 | + | |
89 | +Preferred CPU models for MIPS hosts | |
90 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
91 | + | |
92 | +The following CPU models are preferred for use on different MIPS hosts: | |
93 | + | |
94 | +``MIPS III`` | |
95 | + R4000 | |
96 | + | |
97 | +``MIPS32R2`` | |
98 | + 34Kf | |
99 | + | |
100 | +``MIPS64R6`` | |
101 | + I6400 | |
102 | + | |
103 | +``nanoMIPS`` | |
104 | + I7200 | |
105 | + |
@@ -0,0 +1,365 @@ | ||
1 | +Recommendations for KVM CPU model configuration on x86 hosts | |
2 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
3 | + | |
4 | +The information that follows provides recommendations for configuring | |
5 | +CPU models on x86 hosts. The goals are to maximise performance, while | |
6 | +protecting guest OS against various CPU hardware flaws, and optionally | |
7 | +enabling live migration between hosts with heterogeneous CPU models. | |
8 | + | |
9 | + | |
10 | +Two ways to configure CPU models with QEMU / KVM | |
11 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
12 | + | |
13 | +(1) **Host passthrough** | |
14 | + | |
15 | + This passes the host CPU model features, model, stepping, exactly to | |
16 | + the guest. Note that KVM may filter out some host CPU model features | |
17 | + if they cannot be supported with virtualization. Live migration is | |
18 | + unsafe when this mode is used as libvirt / QEMU cannot guarantee a | |
19 | + stable CPU is exposed to the guest across hosts. This is the | |
20 | + recommended CPU to use, provided live migration is not required. | |
21 | + | |
22 | +(2) **Named model** | |
23 | + | |
24 | + QEMU comes with a number of predefined named CPU models, that | |
25 | + typically refer to specific generations of hardware released by | |
26 | + Intel and AMD. These allow the guest VMs to have a degree of | |
27 | + isolation from the host CPU, allowing greater flexibility in live | |
28 | + migrating between hosts with differing hardware. @end table | |
29 | + | |
30 | +In both cases, it is possible to optionally add or remove individual CPU | |
31 | +features, to alter what is presented to the guest by default. | |
32 | + | |
33 | +Libvirt supports a third way to configure CPU models known as "Host | |
34 | +model". This uses the QEMU "Named model" feature, automatically picking | |
35 | +a CPU model that is similar the host CPU, and then adding extra features | |
36 | +to approximate the host model as closely as possible. This does not | |
37 | +guarantee the CPU family, stepping, etc will precisely match the host | |
38 | +CPU, as they would with "Host passthrough", but gives much of the | |
39 | +benefit of passthrough, while making live migration safe. | |
40 | + | |
41 | + | |
42 | +Preferred CPU models for Intel x86 hosts | |
43 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
44 | + | |
45 | +The following CPU models are preferred for use on Intel hosts. | |
46 | +Administrators / applications are recommended to use the CPU model that | |
47 | +matches the generation of the host CPUs in use. In a deployment with a | |
48 | +mixture of host CPU models between machines, if live migration | |
49 | +compatibility is required, use the newest CPU model that is compatible | |
50 | +across all desired hosts. | |
51 | + | |
52 | +``Skylake-Server``, ``Skylake-Server-IBRS`` | |
53 | + Intel Xeon Processor (Skylake, 2016) | |
54 | + | |
55 | +``Skylake-Client``, ``Skylake-Client-IBRS`` | |
56 | + Intel Core Processor (Skylake, 2015) | |
57 | + | |
58 | +``Broadwell``, ``Broadwell-IBRS``, ``Broadwell-noTSX``, ``Broadwell-noTSX-IBRS`` | |
59 | + Intel Core Processor (Broadwell, 2014) | |
60 | + | |
61 | +``Haswell``, ``Haswell-IBRS``, ``Haswell-noTSX``, ``Haswell-noTSX-IBRS`` | |
62 | + Intel Core Processor (Haswell, 2013) | |
63 | + | |
64 | +``IvyBridge``, ``IvyBridge-IBR`` | |
65 | + Intel Xeon E3-12xx v2 (Ivy Bridge, 2012) | |
66 | + | |
67 | +``SandyBridge``, ``SandyBridge-IBRS`` | |
68 | + Intel Xeon E312xx (Sandy Bridge, 2011) | |
69 | + | |
70 | +``Westmere``, ``Westmere-IBRS`` | |
71 | + Westmere E56xx/L56xx/X56xx (Nehalem-C, 2010) | |
72 | + | |
73 | +``Nehalem``, ``Nehalem-IBRS`` | |
74 | + Intel Core i7 9xx (Nehalem Class Core i7, 2008) | |
75 | + | |
76 | +``Penryn`` | |
77 | + Intel Core 2 Duo P9xxx (Penryn Class Core 2, 2007) | |
78 | + | |
79 | +``Conroe`` | |
80 | + Intel Celeron_4x0 (Conroe/Merom Class Core 2, 2006) | |
81 | + | |
82 | + | |
83 | +Important CPU features for Intel x86 hosts | |
84 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
85 | + | |
86 | +The following are important CPU features that should be used on Intel | |
87 | +x86 hosts, when available in the host CPU. Some of them require explicit | |
88 | +configuration to enable, as they are not included by default in some, or | |
89 | +all, of the named CPU models listed above. In general all of these | |
90 | +features are included if using "Host passthrough" or "Host model". | |
91 | + | |
92 | +``pcid`` | |
93 | + Recommended to mitigate the cost of the Meltdown (CVE-2017-5754) fix. | |
94 | + | |
95 | + Included by default in Haswell, Broadwell & Skylake Intel CPU models. | |
96 | + | |
97 | + Should be explicitly turned on for Westmere, SandyBridge, and | |
98 | + IvyBridge Intel CPU models. Note that some desktop/mobile Westmere | |
99 | + CPUs cannot support this feature. | |
100 | + | |
101 | +``spec-ctrl`` | |
102 | + Required to enable the Spectre v2 (CVE-2017-5715) fix. | |
103 | + | |
104 | + Included by default in Intel CPU models with -IBRS suffix. | |
105 | + | |
106 | + Must be explicitly turned on for Intel CPU models without -IBRS | |
107 | + suffix. | |
108 | + | |
109 | + Requires the host CPU microcode to support this feature before it | |
110 | + can be used for guest CPUs. | |
111 | + | |
112 | +``stibp`` | |
113 | + Required to enable stronger Spectre v2 (CVE-2017-5715) fixes in some | |
114 | + operating systems. | |
115 | + | |
116 | + Must be explicitly turned on for all Intel CPU models. | |
117 | + | |
118 | + Requires the host CPU microcode to support this feature before it can | |
119 | + be used for guest CPUs. | |
120 | + | |
121 | +``ssbd`` | |
122 | + Required to enable the CVE-2018-3639 fix. | |
123 | + | |
124 | + Not included by default in any Intel CPU model. | |
125 | + | |
126 | + Must be explicitly turned on for all Intel CPU models. | |
127 | + | |
128 | + Requires the host CPU microcode to support this feature before it | |
129 | + can be used for guest CPUs. | |
130 | + | |
131 | +``pdpe1gb`` | |
132 | + Recommended to allow guest OS to use 1GB size pages. | |
133 | + | |
134 | + Not included by default in any Intel CPU model. | |
135 | + | |
136 | + Should be explicitly turned on for all Intel CPU models. | |
137 | + | |
138 | + Note that not all CPU hardware will support this feature. | |
139 | + | |
140 | +``md-clear`` | |
141 | + Required to confirm the MDS (CVE-2018-12126, CVE-2018-12127, | |
142 | + CVE-2018-12130, CVE-2019-11091) fixes. | |
143 | + | |
144 | + Not included by default in any Intel CPU model. | |
145 | + | |
146 | + Must be explicitly turned on for all Intel CPU models. | |
147 | + | |
148 | + Requires the host CPU microcode to support this feature before it | |
149 | + can be used for guest CPUs. | |
150 | + | |
151 | + | |
152 | +Preferred CPU models for AMD x86 hosts | |
153 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
154 | + | |
155 | +The following CPU models are preferred for use on Intel hosts. | |
156 | +Administrators / applications are recommended to use the CPU model that | |
157 | +matches the generation of the host CPUs in use. In a deployment with a | |
158 | +mixture of host CPU models between machines, if live migration | |
159 | +compatibility is required, use the newest CPU model that is compatible | |
160 | +across all desired hosts. | |
161 | + | |
162 | +``EPYC``, ``EPYC-IBPB`` | |
163 | + AMD EPYC Processor (2017) | |
164 | + | |
165 | +``Opteron_G5`` | |
166 | + AMD Opteron 63xx class CPU (2012) | |
167 | + | |
168 | +``Opteron_G4`` | |
169 | + AMD Opteron 62xx class CPU (2011) | |
170 | + | |
171 | +``Opteron_G3`` | |
172 | + AMD Opteron 23xx (Gen 3 Class Opteron, 2009) | |
173 | + | |
174 | +``Opteron_G2`` | |
175 | + AMD Opteron 22xx (Gen 2 Class Opteron, 2006) | |
176 | + | |
177 | +``Opteron_G1`` | |
178 | + AMD Opteron 240 (Gen 1 Class Opteron, 2004) | |
179 | + | |
180 | + | |
181 | +Important CPU features for AMD x86 hosts | |
182 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
183 | + | |
184 | +The following are important CPU features that should be used on AMD x86 | |
185 | +hosts, when available in the host CPU. Some of them require explicit | |
186 | +configuration to enable, as they are not included by default in some, or | |
187 | +all, of the named CPU models listed above. In general all of these | |
188 | +features are included if using "Host passthrough" or "Host model". | |
189 | + | |
190 | +``ibpb`` | |
191 | + Required to enable the Spectre v2 (CVE-2017-5715) fix. | |
192 | + | |
193 | + Included by default in AMD CPU models with -IBPB suffix. | |
194 | + | |
195 | + Must be explicitly turned on for AMD CPU models without -IBPB suffix. | |
196 | + | |
197 | + Requires the host CPU microcode to support this feature before it | |
198 | + can be used for guest CPUs. | |
199 | + | |
200 | +``stibp`` | |
201 | + Required to enable stronger Spectre v2 (CVE-2017-5715) fixes in some | |
202 | + operating systems. | |
203 | + | |
204 | + Must be explicitly turned on for all AMD CPU models. | |
205 | + | |
206 | + Requires the host CPU microcode to support this feature before it | |
207 | + can be used for guest CPUs. | |
208 | + | |
209 | +``virt-ssbd`` | |
210 | + Required to enable the CVE-2018-3639 fix | |
211 | + | |
212 | + Not included by default in any AMD CPU model. | |
213 | + | |
214 | + Must be explicitly turned on for all AMD CPU models. | |
215 | + | |
216 | + This should be provided to guests, even if amd-ssbd is also provided, | |
217 | + for maximum guest compatibility. | |
218 | + | |
219 | + Note for some QEMU / libvirt versions, this must be force enabled when | |
220 | + when using "Host model", because this is a virtual feature that | |
221 | + doesn't exist in the physical host CPUs. | |
222 | + | |
223 | +``amd-ssbd`` | |
224 | + Required to enable the CVE-2018-3639 fix | |
225 | + | |
226 | + Not included by default in any AMD CPU model. | |
227 | + | |
228 | + Must be explicitly turned on for all AMD CPU models. | |
229 | + | |
230 | + This provides higher performance than ``virt-ssbd`` so should be | |
231 | + exposed to guests whenever available in the host. ``virt-ssbd`` should | |
232 | + none the less also be exposed for maximum guest compatibility as some | |
233 | + kernels only know about ``virt-ssbd``. | |
234 | + | |
235 | +``amd-no-ssb`` | |
236 | + Recommended to indicate the host is not vulnerable CVE-2018-3639 | |
237 | + | |
238 | + Not included by default in any AMD CPU model. | |
239 | + | |
240 | + Future hardware generations of CPU will not be vulnerable to | |
241 | + CVE-2018-3639, and thus the guest should be told not to enable | |
242 | + its mitigations, by exposing amd-no-ssb. This is mutually | |
243 | + exclusive with virt-ssbd and amd-ssbd. | |
244 | + | |
245 | +``pdpe1gb`` | |
246 | + Recommended to allow guest OS to use 1GB size pages | |
247 | + | |
248 | + Not included by default in any AMD CPU model. | |
249 | + | |
250 | + Should be explicitly turned on for all AMD CPU models. | |
251 | + | |
252 | + Note that not all CPU hardware will support this feature. | |
253 | + | |
254 | + | |
255 | +Default x86 CPU models | |
256 | +^^^^^^^^^^^^^^^^^^^^^^ | |
257 | + | |
258 | +The default QEMU CPU models are designed such that they can run on all | |
259 | +hosts. If an application does not wish to do perform any host | |
260 | +compatibility checks before launching guests, the default is guaranteed | |
261 | +to work. | |
262 | + | |
263 | +The default CPU models will, however, leave the guest OS vulnerable to | |
264 | +various CPU hardware flaws, so their use is strongly discouraged. | |
265 | +Applications should follow the earlier guidance to setup a better CPU | |
266 | +configuration, with host passthrough recommended if live migration is | |
267 | +not needed. | |
268 | + | |
269 | +``qemu32``, ``qemu64`` | |
270 | + QEMU Virtual CPU version 2.5+ (32 & 64 bit variants) | |
271 | + | |
272 | +``qemu64`` is used for x86_64 guests and ``qemu32`` is used for i686 | |
273 | +guests, when no ``-cpu`` argument is given to QEMU, or no ``<cpu>`` is | |
274 | +provided in libvirt XML. | |
275 | + | |
276 | +Other non-recommended x86 CPUs | |
277 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
278 | + | |
279 | +The following CPUs models are compatible with most AMD and Intel x86 | |
280 | +hosts, but their usage is discouraged, as they expose a very limited | |
281 | +featureset, which prevents guests having optimal performance. | |
282 | + | |
283 | +``kvm32``, ``kvm64`` | |
284 | + Common KVM processor (32 & 64 bit variants). | |
285 | + | |
286 | + Legacy models just for historical compatibility with ancient QEMU | |
287 | + versions. | |
288 | + | |
289 | +``486``, ``athlon``, ``phenom``, ``coreduo``, ``core2duo``, ``n270``, ``pentium``, ``pentium2``, ``pentium3`` | |
290 | + Various very old x86 CPU models, mostly predating the introduction | |
291 | + of hardware assisted virtualization, that should thus not be | |
292 | + required for running virtual machines. | |
293 | + | |
294 | + | |
295 | +Syntax for configuring CPU models | |
296 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
297 | + | |
298 | +The examples below illustrate the approach to configuring the various | |
299 | +CPU models / features in QEMU and libvirt. | |
300 | + | |
301 | +QEMU command line | |
302 | +^^^^^^^^^^^^^^^^^ | |
303 | + | |
304 | +Host passthrough: | |
305 | + | |
306 | +.. parsed-literal:: | |
307 | + | |
308 | + |qemu_system| -cpu host | |
309 | + | |
310 | +Host passthrough with feature customization: | |
311 | + | |
312 | +.. parsed-literal:: | |
313 | + | |
314 | + |qemu_system| -cpu host,-vmx,... | |
315 | + | |
316 | +Named CPU models: | |
317 | + | |
318 | +.. parsed-literal:: | |
319 | + | |
320 | + |qemu_system| -cpu Westmere | |
321 | + | |
322 | +Named CPU models with feature customization: | |
323 | + | |
324 | +.. parsed-literal:: | |
325 | + | |
326 | + |qemu_system| -cpu Westmere,+pcid,... | |
327 | + | |
328 | +Libvirt guest XML | |
329 | +^^^^^^^^^^^^^^^^^ | |
330 | + | |
331 | +Host passthrough:: | |
332 | + | |
333 | + <cpu mode='host-passthrough'/> | |
334 | + | |
335 | +Host passthrough with feature customization:: | |
336 | + | |
337 | + <cpu mode='host-passthrough'> | |
338 | + <feature name="vmx" policy="disable"/> | |
339 | + ... | |
340 | + </cpu> | |
341 | + | |
342 | +Host model:: | |
343 | + | |
344 | + <cpu mode='host-model'/> | |
345 | + | |
346 | +Host model with feature customization:: | |
347 | + | |
348 | + <cpu mode='host-model'> | |
349 | + <feature name="vmx" policy="disable"/> | |
350 | + ... | |
351 | + </cpu> | |
352 | + | |
353 | +Named model:: | |
354 | + | |
355 | + <cpu mode='custom'> | |
356 | + <model name="Westmere"/> | |
357 | + </cpu> | |
358 | + | |
359 | +Named model with feature customization:: | |
360 | + | |
361 | + <cpu mode='custom'> | |
362 | + <model name="Westmere"/> | |
363 | + <feature name="pcid" policy="require"/> | |
364 | + ... | |
365 | + </cpu> |
@@ -0,0 +1,20 @@ | ||
1 | +:orphan: | |
2 | + | |
3 | +QEMU / KVM CPU model configuration | |
4 | +================================== | |
5 | + | |
6 | +Synopsis | |
7 | +'''''''' | |
8 | + | |
9 | +QEMU CPU Modelling Infrastructure manual | |
10 | + | |
11 | +Description | |
12 | +''''''''''' | |
13 | + | |
14 | +.. include:: cpu-models-x86.rst.inc | |
15 | +.. include:: cpu-models-mips.rst.inc | |
16 | + | |
17 | +See also | |
18 | +'''''''' | |
19 | + | |
20 | +The HTML documentation of QEMU for more precise information and Linux user mode emulator invocation. |
@@ -1,28 +0,0 @@ | ||
1 | -@c man begin SYNOPSIS | |
2 | -QEMU / KVM CPU model configuration | |
3 | -@c man end | |
4 | - | |
5 | -@set qemu_system_x86 qemu-system-x86_64 | |
6 | - | |
7 | -@c man begin DESCRIPTION | |
8 | - | |
9 | -@include cpu-models-x86.texi | |
10 | -@include cpu-models-mips.texi | |
11 | - | |
12 | -@c man end | |
13 | - | |
14 | -@ignore | |
15 | - | |
16 | -@setfilename qemu-cpu-models | |
17 | -@settitle QEMU / KVM CPU model configuration | |
18 | - | |
19 | -@c man begin SEEALSO | |
20 | -The HTML documentation of QEMU for more precise information and Linux | |
21 | -user mode emulator invocation. | |
22 | -@c man end | |
23 | - | |
24 | -@c man begin AUTHOR | |
25 | -Daniel P. Berrange | |
26 | -@c man end | |
27 | - | |
28 | -@end ignore |