]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_map: Add <decode> element to x86 CPU model definitions
authorJiri Denemark <jdenemar@redhat.com>
Thu, 12 Mar 2020 16:39:37 +0000 (17:39 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Wed, 25 Mar 2020 21:27:39 +0000 (22:27 +0100)
The element specifies whether a particular CPU model can be used when
creating a CPU definition from raw CPUID/MSR data. The @host attribute
determines whether the CPU model can be used (host='on') for creating
CPU definition for host capabilities. Usability of the model for domain
capabilities and host-model CPU definitions is controlled by the @guest
attribute.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Tested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
55 files changed:
src/cpu/cpu_x86.c
src/cpu_map/x86_486.xml
src/cpu_map/x86_Broadwell-IBRS.xml
src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
src/cpu_map/x86_Broadwell-noTSX.xml
src/cpu_map/x86_Broadwell.xml
src/cpu_map/x86_Cascadelake-Server-noTSX.xml
src/cpu_map/x86_Cascadelake-Server.xml
src/cpu_map/x86_Conroe.xml
src/cpu_map/x86_Dhyana.xml
src/cpu_map/x86_EPYC-IBPB.xml
src/cpu_map/x86_EPYC.xml
src/cpu_map/x86_Haswell-IBRS.xml
src/cpu_map/x86_Haswell-noTSX-IBRS.xml
src/cpu_map/x86_Haswell-noTSX.xml
src/cpu_map/x86_Haswell.xml
src/cpu_map/x86_Icelake-Client-noTSX.xml
src/cpu_map/x86_Icelake-Client.xml
src/cpu_map/x86_Icelake-Server-noTSX.xml
src/cpu_map/x86_Icelake-Server.xml
src/cpu_map/x86_IvyBridge-IBRS.xml
src/cpu_map/x86_IvyBridge.xml
src/cpu_map/x86_Nehalem-IBRS.xml
src/cpu_map/x86_Nehalem.xml
src/cpu_map/x86_Opteron_G1.xml
src/cpu_map/x86_Opteron_G2.xml
src/cpu_map/x86_Opteron_G3.xml
src/cpu_map/x86_Opteron_G4.xml
src/cpu_map/x86_Opteron_G5.xml
src/cpu_map/x86_Penryn.xml
src/cpu_map/x86_SandyBridge-IBRS.xml
src/cpu_map/x86_SandyBridge.xml
src/cpu_map/x86_Skylake-Client-IBRS.xml
src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
src/cpu_map/x86_Skylake-Client.xml
src/cpu_map/x86_Skylake-Server-IBRS.xml
src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
src/cpu_map/x86_Skylake-Server.xml
src/cpu_map/x86_Westmere-IBRS.xml
src/cpu_map/x86_Westmere.xml
src/cpu_map/x86_athlon.xml
src/cpu_map/x86_core2duo.xml
src/cpu_map/x86_coreduo.xml
src/cpu_map/x86_cpu64-rhel5.xml
src/cpu_map/x86_cpu64-rhel6.xml
src/cpu_map/x86_kvm32.xml
src/cpu_map/x86_kvm64.xml
src/cpu_map/x86_n270.xml
src/cpu_map/x86_pentium.xml
src/cpu_map/x86_pentium2.xml
src/cpu_map/x86_pentium3.xml
src/cpu_map/x86_pentiumpro.xml
src/cpu_map/x86_phenom.xml
src/cpu_map/x86_qemu32.xml
src/cpu_map/x86_qemu64.xml

index 7a8a2e3f3bd6e4e2ac6416888989bc83cf0717d1..366337ef5793f27b1a559b4bc0e0969526fcb42b 100644 (file)
@@ -125,6 +125,8 @@ typedef struct _virCPUx86Model virCPUx86Model;
 typedef virCPUx86Model *virCPUx86ModelPtr;
 struct _virCPUx86Model {
     char *name;
+    bool decodeHost;
+    bool decodeGuest;
     virCPUx86VendorPtr vendor;
     size_t nsignatures;
     uint32_t *signatures;
@@ -1347,6 +1349,44 @@ x86ModelCompare(virCPUx86ModelPtr model1,
 }
 
 
+static int
+x86ModelParseDecode(virCPUx86ModelPtr model,
+                    xmlXPathContextPtr ctxt)
+{
+    g_autofree char *host = NULL;
+    g_autofree char *guest = NULL;
+    int val;
+
+    if ((host = virXPathString("string(./decode/@host)", ctxt)))
+        val = virTristateSwitchTypeFromString(host);
+    else
+        val = VIR_TRISTATE_SWITCH_ABSENT;
+
+    if (val <= 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("invalid or missing decode/host attribute in CPU model %s"),
+                       model->name);
+        return -1;
+    }
+    model->decodeHost = val == VIR_TRISTATE_SWITCH_ON;
+
+    if ((guest = virXPathString("string(./decode/@guest)", ctxt)))
+        val = virTristateSwitchTypeFromString(guest);
+    else
+        val = VIR_TRISTATE_SWITCH_ABSENT;
+
+    if (val <= 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("invalid or missing decode/guest attribute in CPU model %s"),
+                       model->name);
+        return -1;
+    }
+    model->decodeGuest = val == VIR_TRISTATE_SWITCH_ON;
+
+    return 0;
+}
+
+
 static int
 x86ModelParseAncestor(virCPUx86ModelPtr model,
                       xmlXPathContextPtr ctxt,
@@ -1521,6 +1561,9 @@ x86ModelParse(xmlXPathContextPtr ctxt,
 
     model->name = g_strdup(name);
 
+    if (x86ModelParseDecode(model, ctxt) < 0)
+        goto cleanup;
+
     if (x86ModelParseAncestor(model, ctxt, map) < 0)
         goto cleanup;
 
index 61fa3797e814b7530c050b89c7e4242f29cd3f75..d05b27739282fae4bba1933c1b953a7ccdef71ba 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='486'>
+    <decode host='on' guest='on'/>
     <feature name='fpu'/>
     <feature name='pse'/>
     <feature name='vme'/>
index 4600cacec0c01a0545e373b89ca033df09d87b13..9033d5fcd51c8182ca9db3ac5405f6b4d22e80f3 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Broadwell-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='61'/> <!-- 0306d0 -->
     <signature family='6' model='71'/> <!-- 040670 -->
     <signature family='6' model='79'/> <!-- 0406f0 -->
index b3fc0b726a8ace8895a3988b90fbe2107bec5531..c044b60e36e60a67e5c1dd3d3efc0ca5705b949a 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Broadwell-noTSX-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='61'/> <!-- 0306d0 -->
     <signature family='6' model='71'/> <!-- 040670 -->
     <signature family='6' model='79'/> <!-- 0406f0 -->
index ad932d0853ecbca350fcfbbb07e0caa32b7637c4..637f29ba1cfcc5ff39287332f9dcbede6c2dad8b 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Broadwell-noTSX'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='61'/> <!-- 0306d0 -->
     <signature family='6' model='71'/> <!-- 040670 -->
     <signature family='6' model='79'/> <!-- 0406f0 -->
index 6de92273228b1bb77470ba17ed7b2acfa38f9298..82939a450916521ca970dd87b75dff686735747f 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Broadwell'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='61'/> <!-- 0306d0 -->
     <signature family='6' model='71'/> <!-- 040670 -->
     <signature family='6' model='79'/> <!-- 0406f0 -->
index d24415ebce0b2bb267f3846e912c781ef503ae34..5adea664e9d177e8c8740ea4929a12ab56d7953c 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Cascadelake-Server-noTSX'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='85'/> <!-- 050654 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index b69ac198b609a6112bb872dc6ea63d278eb1b5d2..d7ec42f57ea59febe83e4f192a11bfbc3e80cfbd 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Cascadelake-Server'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='85'/> <!-- 050654 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index 89fe0ad2cf3f43d2850f1097f8db308897a6335c..4cacee6142ec3fe493d7eecaa14e9e7c057e01d2 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Conroe'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='15'/> <!-- 0006f0 -->
     <signature family='6' model='22'/> <!-- 010660 -->
     <vendor name='Intel'/>
index cbc8020a948f1cfe3ebb2cbcd10361a9e715f96b..689daf864990d11ca74fd0f0d480973062d7ac8a 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Dhyana'>
+    <decode host='on' guest='on'/>
     <signature family='24' model='0'/> <!-- 900f00 -->
     <vendor name='Hygon'/>
     <feature name='3dnowprefetch'/>
index 283697ebd1a77afc134e291ce9baa579ee9319ba..983c5f44458c5685f9377e25e5954e5e28ce31f2 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='EPYC-IBPB'>
+    <decode host='on' guest='on'/>
     <signature family='23' model='1'/> <!-- 800f10 -->
     <vendor name='AMD'/>
     <feature name='3dnowprefetch'/>
index f0601392fddf120403f4e96efc27272ac3d0a359..3ebba9f4ed9bfe7ca816a51bcd959348b24c4175 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='EPYC'>
+    <decode host='on' guest='on'/>
     <signature family='23' model='1'/> <!-- 800f10 -->
     <vendor name='AMD'/>
     <feature name='3dnowprefetch'/>
index 4f86db838fafcedd70ce0d9c3ccee9d38eb7f1e5..0ffe2bae0d4b3c97983a8b01ade34fbed983ebbf 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Haswell-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='60'/> <!-- 0306c0 -->
     <signature family='6' model='63'/> <!-- 0306f0 -->
     <signature family='6' model='69'/> <!-- 040650 -->
index 47318be6d56e26ab487a16cb8743f9b5b209d3f1..75d709c00988cccd900a086c4a4e1b8250734a22 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Haswell-noTSX-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='60'/> <!-- 0306c0 -->
     <signature family='6' model='63'/> <!-- 0306f0 -->
     <signature family='6' model='69'/> <!-- 040650 -->
index efd10c47deaf0271a3c4ba58251d1ce444744e9d..b0a0faa856d1c688c0fc221e17270e4473d81c9f 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Haswell-noTSX'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='60'/> <!-- 0306c0 -->
     <signature family='6' model='63'/> <!-- 0306f0 -->
     <signature family='6' model='69'/> <!-- 040650 -->
index ac358d796734bb68c1d20f2cf3434147eec38fa6..ee16b30f1985ecbc7992bc01fcb958e26083e59c 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Haswell'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='60'/> <!-- 0306c0 -->
     <signature family='6' model='63'/> <!-- 0306f0 -->
     <signature family='6' model='69'/> <!-- 040650 -->
index cd51881f40c18b19067042c2d283fa9646ef091f..540732af6ff7b9bd779e177a99296f9cd01805de 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Icelake-Client-noTSX'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='126'/> <!-- 0706e0 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index fbd53bbe1197b2035c982ef4cf16fae9e8f795b3..5cf32e91fad459e88047ba63cb4605d4e78a032d 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Icelake-Client'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='126'/> <!-- 0706e0 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index 538c656712a827e0cf024e72b5886e05cab5daed..5a53da23c706bd77914536163372a81fce4cae19 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Icelake-Server-noTSX'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='134'/> <!-- 080660 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index a5653719771bf627a0454fa188f921f18f0bc9f3..367ade724096659a2e22ca8ae2e2e3d40d6ae121 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Icelake-Server'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='134'/> <!-- 080660 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index e0f2adfa8253f3b5c7e705cec5bc1cbc4c22d0b3..430bc3232dbcc38c40fba4cecc27dfebef9a0cfa 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='IvyBridge-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='58'/> <!-- 0306a0 -->
     <signature family='6' model='62'/> <!-- 0306e0 -->
     <vendor name='Intel'/>
index 16213dbc6287b51a789f757bebffca9c7634b5c5..eaf5d02e827d383eaa646e9303933b82e5f85a1f 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='IvyBridge'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='58'/> <!-- 0306a0 -->
     <signature family='6' model='62'/> <!-- 0306e0 -->
     <vendor name='Intel'/>
index 8cc19eff03ca635548b88a5522f355a61aef5fe4..00d0d2fe51a87efec60458aea34e3ff1d9eee3f4 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Nehalem-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='26'/> <!-- 0106a0 -->
     <signature family='6' model='30'/> <!-- 0106e0 -->
     <signature family='6' model='31'/> <!-- 0106f0 -->
index 530e5e8a0d0c5c70dbe5920d9a57ab683f0f9fe0..9968001fe795745893e4d11a1c75d275e57340fb 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Nehalem'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='26'/> <!-- 0106a0 -->
     <signature family='6' model='30'/> <!-- 0106e0 -->
     <signature family='6' model='31'/> <!-- 0106f0 -->
index 73cf1de71e0062d4b148bf931266b1603ae442a6..57648ca93f21aaba40d8ade7526ef90c6af90539 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Opteron_G1'>
+    <decode host='on' guest='on'/>
     <signature family='15' model='6'/> <!-- 100e60 -->
     <vendor name='AMD'/>
     <feature name='apic'/>
index 342105730e921f98d126fe4b67dd5e21dc78a4ed..db961b006790033e5b00df1c6726a54a9b32d33e 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Opteron_G2'>
+    <decode host='on' guest='on'/>
     <signature family='15' model='6'/> <!-- 100e60 -->
     <vendor name='AMD'/>
     <feature name='apic'/>
index 7fbf8ac9e9ebac04c85a9cf4214b9c25868bba82..dab59d4f8247e66af3d56ac270ebf9f8b16bcad6 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Opteron_G3'>
+    <decode host='on' guest='on'/>
     <signature family='15' model='6'/> <!-- 100e60 -->
     <vendor name='AMD'/>
     <feature name='abm'/>
index 463b3676a0ce1a6d7dcacafe8efd2f52b0c900ea..a7fc8d5828efd1f0229b2af8bbf7c5b615c33e0c 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Opteron_G4'>
+    <decode host='on' guest='on'/>
     <signature family='21' model='1'/> <!-- 600f10 -->
     <vendor name='AMD'/>
     <feature name='3dnowprefetch'/>
index 0f8fe32c877ccd14c4520fcfb36cbe3ac660571b..ff775bdcefadaf3d1389d6625fae116efa2c8b69 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Opteron_G5'>
+    <decode host='on' guest='on'/>
     <signature family='21' model='2'/> <!-- 600f20 -->
     <vendor name='AMD'/>
     <feature name='3dnowprefetch'/>
index 279bb05570fbacd95ded8a81f0364bb74a444ff5..29d4cd635b8568801d5ad353c4a46caf4258abea 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Penryn'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='23'/> <!-- 010670 -->
     <signature family='6' model='29'/> <!-- 0106d0 -->
     <vendor name='Intel'/>
index 7d1342ec6fe2308111b67e40a938c83f293edf2b..fbdb4f2bf64c81bfb2cda957a45a98b98c7d5744 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='SandyBridge-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='42'/> <!-- 0206a0 -->
     <signature family='6' model='45'/> <!-- 0206d0 -->
     <vendor name='Intel'/>
index 48e4ac8082501d879e24ef28fa41199c77afc53d..7c85ed42df1715a22c3da7bbcfd1011a65411cbd 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='SandyBridge'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='42'/> <!-- 0206a0 -->
     <signature family='6' model='45'/> <!-- 0206d0 -->
     <vendor name='Intel'/>
index 4440313fc4a891a456d39c2c19288571b059227b..5709e7c2f958abfe242b8e91c69427ec0911ad6f 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Skylake-Client-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='94'/> <!-- 0506e0 -->
     <signature family='6' model='78'/> <!-- 0406e0 -->
     <!-- These are Kaby Lake and Coffee Lake successors to Skylake,
index 3d2976692fa5aabb94fd55208190fd81ec0ada68..0c2f1e6ac4618070e1d1a7940cf7e17c127a5d90 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Skylake-Client-noTSX-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='94'/> <!-- 0506e0 -->
     <signature family='6' model='78'/> <!-- 0406e0 -->
     <!-- These are Kaby Lake and Coffee Lake successors to Skylake,
index 1053fa4a0417b68321161ccddf4e1d10d1b125a5..14cd57e17689fa1dea119bddbb178c7f51504a88 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Skylake-Client'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='94'/> <!-- 0506e0 -->
     <signature family='6' model='78'/> <!-- 0406e0 -->
     <!-- These are Kaby Lake and Coffee Lake successors to Skylake,
index 71179f9f74ac135215b7ffa64b442588a8b7334c..bd6b6457ad6efeb654e297f8bf97ea3dc18b528b 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Skylake-Server-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='85'/> <!-- 050654 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index 455a0721197c35b36220ce3bac586f6479d83130..91a206f57526801c818830b2f10fb655c8ee3c10 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Skylake-Server-noTSX-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='85'/> <!-- 050654 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index 2da69e0dfc8868a8543b4436899e5ce0a9b2a926..f96875a85fe6ba595cbe81866688cb8055eab74e 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Skylake-Server'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='85'/> <!-- 050654 -->
     <vendor name='Intel'/>
     <feature name='3dnowprefetch'/>
index 3baf56f47a42945442a973bd95bb8363a299ebf0..c7898f0c22665c94a5d45f9c9eefa92cea275722 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Westmere-IBRS'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='44'/> <!-- 0206c0 -->
     <vendor name='Intel'/>
     <feature name='aes'/>
index 95c1d690c8c3b3a0c52dd6d10f91230c6ed8fe93..16e4ad6c309bd2890cd8e8f5febdd234eea814c0 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='Westmere'>
+    <decode host='on' guest='on'/>
     <signature family='6' model='44'/> <!-- 0206c0 -->
     <signature family='6' model='47'/> <!-- 0206f0 -->
     <signature family='6' model='37'/> <!-- 020650 -->
index 0d44508e20962a8a0b4594c488e74d32ebc87c80..81c43c81e8ba94c64cce70b8988c52005177e3f0 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='athlon'>
+    <decode host='on' guest='on'/>
     <vendor name='AMD'/>
     <feature name='3dnow'/>
     <feature name='3dnowext'/>
index 3c9a148f3c231dba04282498f8f65c4ea2a37934..412039fe5596b9caa82f084d5441156b3cff8ea2 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='core2duo'>
+    <decode host='on' guest='on'/>
     <vendor name='Intel'/>
     <feature name='apic'/>
     <feature name='clflush'/>
index 676e8469205d3495d30901c681cd8773ce0199e2..e2fda9a1d484d0d3d152e1b9b5412570458cf3f0 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='coreduo'>
+    <decode host='on' guest='on'/>
     <vendor name='Intel'/>
     <feature name='apic'/>
     <feature name='clflush'/>
index 670a92f274463ce5a5c3ebad290f0dda4a479191..be6bcdb7a626ff55d37167437b07a9e218168539 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='cpu64-rhel5'>
+    <decode host='on' guest='on'/>
     <feature name='apic'/>
     <feature name='clflush'/>
     <feature name='cmov'/>
index 3cae0f00c2754e87eac5417e2808854d85666f27..c62b1b5575de8de11087f0193ba41d4dd8189280 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='cpu64-rhel6'>
+    <decode host='on' guest='on'/>
     <feature name='apic'/>
     <feature name='clflush'/>
     <feature name='cmov'/>
index 5f08a5e7fcb7e54cb115b3300d9d51e91e0f11fb..9dd96d5b569cfd324b21ce5b8e87ded2f7221d21 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='kvm32'>
+    <decode host='on' guest='on'/>
     <feature name='apic'/>
     <feature name='clflush'/>
     <feature name='cmov'/>
index 80b24e2a496328e70e82d3953ee69c3431f50a5f..185af06f784c60971efe46c2e12a5a955343a752 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='kvm64'>
+    <decode host='on' guest='on'/>
     <feature name='apic'/>
     <feature name='clflush'/>
     <feature name='cmov'/>
index cb359d968ecea3159f8612ad87a2a7a0dbca443f..5507d2ea3b88d3983ab72f5ae3d6d96d7ccd90bc 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='n270'>
+    <decode host='on' guest='on'/>
     <vendor name='Intel'/>
     <feature name='apic'/>
     <feature name='clflush'/>
index d44c1399b00388b409ebf75d9caf237a939422a1..f0a8982115bae1be8509276a117f9823d2e49da8 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='pentium'>
+    <decode host='on' guest='on'/>
     <feature name='cx8'/>
     <feature name='de'/>
     <feature name='fpu'/>
index 0d772bad2f1a4de27d18b9d65fa6886dcdbbd22d..aeba08229770e0a085ea3399aec296a88d4b158d 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='pentium2'>
+    <decode host='on' guest='on'/>
     <feature name='cmov'/>
     <feature name='cx8'/>
     <feature name='de'/>
index 24eb227c2872609509165ad02570b8458d54378a..ab85d2967f91c2dd481b98c1493f769dee8083a1 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='pentium3'>
+    <decode host='on' guest='on'/>
     <feature name='cmov'/>
     <feature name='cx8'/>
     <feature name='de'/>
index 9f7a610a875357687bbae1342eb74334c1214b7b..b6e061187ca768cde394da455d0edf9e974f9152 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='pentiumpro'>
+    <decode host='on' guest='on'/>
     <feature name='apic'/>
     <feature name='cmov'/>
     <feature name='cx8'/>
index 71f004057bb650eff4b8af91ee37325298153474..f0f8ece57a9a85d3bec68769d1067fda0c7c1e69 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='phenom'>
+    <decode host='on' guest='on'/>
     <vendor name='AMD'/>
     <feature name='3dnow'/>
     <feature name='3dnowext'/>
index 3c9cdec981591f3abcae6e343b400f6be23b9c67..f3fb1959bec697aa4a64c752b9b3e61fb402d0b4 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='qemu32'>
+    <decode host='on' guest='on'/>
     <feature name='apic'/>
     <feature name='cmov'/>
     <feature name='cx8'/>
index a8e8dfe58d3bee80d38d7d4e13b34bd6bb2c4e4e..0fe207a2b48a7cb3c43638ec9ce394f027cfda96 100644 (file)
@@ -1,5 +1,6 @@
 <cpus>
   <model name='qemu64'>
+    <decode host='on' guest='on'/>
     <!-- These are supported only by TCG.  KVM supports them only if the
          host does.  So we leave them out: