All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Pau Monne <roger.pau@citrix.com>
To: <xen-devel@lists.xenproject.org>
Cc: Roger Pau Monne <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v7 04/11] libs/guest: allow fetching a specific MSR entry from a cpu policy
Date: Tue, 25 Jan 2022 15:49:28 +0100	[thread overview]
Message-ID: <20220125144935.44394-5-roger.pau@citrix.com> (raw)
In-Reply-To: <20220125144935.44394-1-roger.pau@citrix.com>

Introduce an interface that returns a specific MSR entry from a cpu
policy in xen_msr_entry_t format.

This is useful to callers can peek data from the opaque
xc_cpu_policy_t type.

No caller of the interface introduced on this patch.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Use x86_msr_get_entry.

Changes since v1:
 - Introduce a helper to perform a binary search of the MSR entries
   array.
---
 tools/include/xenguest.h        |  2 ++
 tools/libs/guest/xg_cpuid_x86.c | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 0a6fd99306..2672fd043c 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -810,6 +810,8 @@ int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,
 int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy,
                             uint32_t leaf, uint32_t subleaf,
                             xen_cpuid_leaf_t *out);
+int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy,
+                          uint32_t msr, xen_msr_entry_t *out);
 
 /* Compatibility calculations. */
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index ad6b349680..af5b8e47f4 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -881,6 +881,26 @@ int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy,
     return 0;
 }
 
+int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy,
+                          uint32_t msr, xen_msr_entry_t *out)
+{
+    const uint64_t *val;
+
+    *out = (xen_msr_entry_t){};
+
+    val = x86_msr_get_entry(&policy->msr, msr);
+    if ( !val )
+    {
+        errno = ENOENT;
+        return -1;
+    }
+
+    out->idx = msr;
+    out->val = *val;
+
+    return 0;
+}
+
 bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host,
                                  xc_cpu_policy_t *guest)
 {
-- 
2.34.1



  parent reply	other threads:[~2022-01-25 14:50 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-25 14:49 [PATCH v7 00/11] libs/guest: new CPUID/MSR interface Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 01/11] libx86: introduce helper to fetch cpuid leaf Roger Pau Monne
2022-01-25 15:03   ` Jan Beulich
2022-01-25 14:49 ` [PATCH v7 02/11] libs/guest: allow fetching a specific CPUID leaf from a cpu policy Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 03/11] libx86: introduce helper to fetch msr entry Roger Pau Monne
2022-01-25 15:04   ` Jan Beulich
2022-01-25 14:49 ` Roger Pau Monne [this message]
2022-01-25 14:49 ` [PATCH v7 05/11] libs/guest: make a cpu policy compatible with older Xen versions Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 06/11] libs/guest: introduce helper set cpu topology in cpu policy Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 07/11] libs/guest: rework xc_cpuid_xend_policy Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 08/11] libs/guest: apply a featureset into a cpu policy Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 09/11] libs/{light,guest}: implement xc_cpuid_apply_policy in libxl Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 10/11] libs/guest: (re)move xc_cpu_policy_apply_cpuid Roger Pau Monne
2022-01-25 14:49 ` [PATCH v7 11/11] x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf contents Roger Pau Monne

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=20220125144935.44394-5-roger.pau@citrix.com \
    --to=roger.pau@citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=wl@xen.org \
    --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.