All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Liu <wl@xen.org>
To: Xen Development List <xen-devel@lists.xenproject.org>
Cc: "Wei Liu" <liuwe@microsoft.com>, "Wei Liu" <wl@xen.org>,
	"Paul Durrant" <paul@xen.org>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Michael Kelley" <mikelley@microsoft.com>,
	"Jan Beulich" <jbeulich@suse.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: [Xen-devel] [PATCH for-next 3/7] x86/hyperv: extract more information from Hyper-V
Date: Fri, 25 Oct 2019 10:16:14 +0100	[thread overview]
Message-ID: <20191025091618.10153-4-liuwe@microsoft.com> (raw)
In-Reply-To: <20191025091618.10153-1-liuwe@microsoft.com>

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@microsoft.com>
---
 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@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  parent reply	other threads:[~2019-10-25  9:17 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-25  9:16 [Xen-devel] [PATCH for-next 0/7] Implement Hyper-V reference TSC based clock source Wei Liu
2019-10-25  9:16 ` [Xen-devel] [PATCH for-next 1/7] x86: import hyperv-tlfs.h from Linux Wei Liu
2019-12-10 15:33   ` Jan Beulich
2019-12-10 15:37     ` Durrant, Paul
2019-12-10 15:43       ` Jan Beulich
2019-12-11 11:14         ` Wei Liu
2019-12-11 11:22           ` Durrant, Paul
2019-12-11 11:28             ` Wei Liu
2019-10-25  9:16 ` [Xen-devel] [PATCH for-next 2/7] x86: fix up hyperv-tlfs.h Wei Liu
2019-12-10 15:35   ` Jan Beulich
2019-12-11 11:42     ` Wei Liu
2019-10-25  9:16 ` Wei Liu [this message]
2019-12-10 16:10   ` [Xen-devel] [PATCH for-next 3/7] x86/hyperv: extract more information from Hyper-V Jan Beulich
2019-10-25  9:16 ` [Xen-devel] [PATCH for-next 4/7] x86: add a comment regarding the location of hypervisor_probe Wei Liu
2019-12-10 16:15   ` Jan Beulich
2019-10-25  9:16 ` [Xen-devel] [PATCH for-next 5/7] x86: use running_on_hypervisor to gate hypervisor_setup Wei Liu
2019-12-10 16:17   ` Jan Beulich
2019-12-11 11:34     ` Wei Liu
2019-10-25  9:16 ` [Xen-devel] [PATCH for-next 6/7] x86/hyperv: provide hyperv_guest variable Wei Liu
2019-12-10 16:39   ` Jan Beulich
2019-10-25  9:16 ` [Xen-devel] [PATCH for-next 7/7] x86: implement Hyper-V clock source Wei Liu
2019-12-10 16:59   ` Jan Beulich
2019-12-18 12:38     ` Wei Liu
2019-12-18 12:51       ` Jan Beulich
2019-12-18 12:56         ` Andrew Cooper
2019-12-18 12:59           ` Wei Liu
2019-12-18 13:28           ` Jan Beulich
2019-12-18 13:18         ` Wei Liu
2019-12-18 13:24           ` Jan Beulich
2019-12-18 13:47             ` Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191025091618.10153-4-liuwe@microsoft.com \
    --to=wl@xen.org \
    --cc=andrew.cooper3@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=liuwe@microsoft.com \
    --cc=mikelley@microsoft.com \
    --cc=paul@xen.org \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.