aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_cpuid.c
diff options
context:
space:
mode:
authorChristoph Egger <Christoph.Egger@amd.com>2011-11-02 16:23:23 +0000
committerChristoph Egger <Christoph.Egger@amd.com>2011-11-02 16:23:23 +0000
commit9a190b2c54716d10753bda1c8b1c6f64c4a05d72 (patch)
tree3bea41b9cfdd8e86e5c5702fbf16322511b5d083 /tools/libxl/libxl_cpuid.c
parentfb971dc3b4b7079892bc2fcc0842e42403ed0b0b (diff)
downloadxen-9a190b2c54716d10753bda1c8b1c6f64c4a05d72.tar.gz
xen-9a190b2c54716d10753bda1c8b1c6f64c4a05d72.tar.bz2
xen-9a190b2c54716d10753bda1c8b1c6f64c4a05d72.zip
libxl: allow to enable/disable cpuid bits
Allow to enable/disable SVM specific cpuid bits in the guest config file via cpuid config option. Also allow to enable/disable the hypervisor cpuid bit in the guest config file. We need to disable the hypervisor cpuid bit to get Hyper-V going. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_cpuid.c')
-rw-r--r--tools/libxl/libxl_cpuid.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/libxl/libxl_cpuid.c b/tools/libxl/libxl_cpuid.c
index 4cbf7db1fa..78bcab509f 100644
--- a/tools/libxl/libxl_cpuid.c
+++ b/tools/libxl/libxl_cpuid.c
@@ -92,6 +92,7 @@ int libxl_cpuid_parse_config(libxl_cpuid_policy_list *cpuid, const char* str)
{"proccount", 0x00000001, NA, CPUID_REG_EBX, 16, 8},
{"clflush", 0x00000001, NA, CPUID_REG_EBX, 8, 8},
{"brandid", 0x00000001, NA, CPUID_REG_EBX, 0, 8},
+ {"hypervisor", 0x00000001, NA, CPUID_REG_ECX, 31, 1},
{"f16c", 0x00000001, NA, CPUID_REG_ECX, 29, 1},
{"avx", 0x00000001, NA, CPUID_REG_ECX, 28, 1},
{"osxsave", 0x00000001, NA, CPUID_REG_ECX, 27, 1},
@@ -178,6 +179,13 @@ int libxl_cpuid_parse_config(libxl_cpuid_policy_list *cpuid, const char* str)
{"procpkg", 0x00000004, 0, CPUID_REG_EAX, 26, 6},
{"apicidsize", 0x80000008, NA, CPUID_REG_ECX, 12, 4},
{"nc", 0x80000008, NA, CPUID_REG_ECX, 0, 8},
+ {"svm_npt", 0x8000000a, NA, CPUID_REG_EDX, 0, 1},
+ {"svm_lbrv", 0x8000000a, NA, CPUID_REG_EDX, 1, 1},
+ {"svm_nrips", 0x8000000a, NA, CPUID_REG_EDX, 3, 1},
+ {"svm_tscrate", 0x8000000a, NA, CPUID_REG_EDX, 4, 1},
+ {"svm_vmcbclean",0x8000000a, NA, CPUID_REG_EDX, 5, 1},
+ {"svm_decode", 0x8000000a, NA, CPUID_REG_EDX, 7, 1},
+ {"svm_pausefilt",0x8000000a, NA, CPUID_REG_EDX, 10, 1},
{NULL, 0, CPUID_REG_INV, 0, 0}
};