|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-next 3/7] x86/hyperv: extract more information from Hyper-V
Provide a structure to store that information. The structure will be
accessed from other places later so make it public.
Signed-off-by: Wei Liu <liuwe@xxxxxxxxxxxxx>
---
xen/arch/x86/guest/hyperv/hyperv.c | 14 ++++++++++++++
xen/include/asm-x86/guest/hyperv.h | 12 ++++++++++++
2 files changed, 26 insertions(+)
diff --git a/xen/arch/x86/guest/hyperv/hyperv.c
b/xen/arch/x86/guest/hyperv/hyperv.c
index 7ab4b127f3..041166f344 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -21,6 +21,9 @@
#include <xen/init.h>
#include <asm/guest.h>
+#include <asm/guest/hyperv-tlfs.h>
+
+struct ms_hyperv_info ms_hyperv;
bool __init hyperv_probe(void)
{
@@ -36,6 +39,17 @@ bool __init hyperv_probe(void)
if ( eax != 0x31237648 ) /* Hv#1 */
return false;
+ /* Extract more information from Hyper-V */
+ ms_hyperv.features = cpuid_eax(HYPERV_CPUID_FEATURES);
+ ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
+ ms_hyperv.hints = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO);
+
+ if ( ms_hyperv.hints & HV_X64_ENLIGHTENED_VMCS_RECOMMENDED )
+ ms_hyperv.nested_features = cpuid_eax(HYPERV_CPUID_NESTED_FEATURES);
+
+ ms_hyperv.max_vp_index = cpuid_eax(HYPERV_CPUID_IMPLEMENT_LIMITS);
+ ms_hyperv.max_lp_index = cpuid_ebx(HYPERV_CPUID_IMPLEMENT_LIMITS);
+
return true;
}
diff --git a/xen/include/asm-x86/guest/hyperv.h
b/xen/include/asm-x86/guest/hyperv.h
index 4b9cc5a836..0f8800040a 100644
--- a/xen/include/asm-x86/guest/hyperv.h
+++ b/xen/include/asm-x86/guest/hyperv.h
@@ -21,8 +21,20 @@
#ifdef CONFIG_HYPERV_GUEST
+#include <xen/types.h>
+
#include <asm/guest/hypervisor.h>
+struct ms_hyperv_info {
+ uint32_t features;
+ uint32_t misc_features;
+ uint32_t hints;
+ uint32_t nested_features;
+ uint32_t max_vp_index;
+ uint32_t max_lp_index;
+};
+extern struct ms_hyperv_info ms_hyperv;
+
extern struct hypervisor_ops hyperv_ops;
bool hyperv_probe(void);
--
2.20.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |