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>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v6 00/12] libs/guest: new CPUID/MSR interface
Date: Mon, 17 Jan 2022 10:48:15 +0100	[thread overview]
Message-ID: <20220117094827.16756-1-roger.pau@citrix.com> (raw)

Hello,

The following series introduces a new CPUID/MSR interface for the
xenguest library. Such interface handles both CPUID and MSRs using the
same opaque object, and provides some helpers for the user to peek or
modify such data without exposing the backing type. This is useful for
future development as CPUID and MSRs are closely related, so it makes
handling those much easier if they are inside the same object (ie: a
change to a CPUID bit might expose or hide an MSR).

In this patch series libxl and other in tree users have been switched to
use the new interface, so it shouldn't result in any functional change
from a user point of view.

Note there are still some missing pieces likely. The way to modify CPUID
data is not ideal, as it requires fetching a leaf and modifying it
directly. We might want some kind of interface in order to set specific
CPUID features more easily, but that's to be discussed, and would be
done as a follow up series.

The addition of a helper to generate compatible policies given two
inputs has been removed from this iteration, sine Andrew Cooper has
posted a patch to set the foundation for that, and further work should
be done against that baseline.

Thanks, Roger.

Jan Beulich (1):
  x86/CPUID: shrink max_{,sub}leaf fields according to actual leaf
    contents

Roger Pau Monne (11):
  libs/guest: move cpu policy related prototypes to xenguest.h
  libx86: introduce helper to fetch cpuid leaf
  libs/guest: allow fetching a specific CPUID leaf from a cpu policy
  libx86: introduce helper to fetch msr entry
  libs/guest: allow fetching a specific MSR entry from a cpu policy
  libs/guest: make a cpu policy compatible with older Xen versions
  libs/guest: introduce helper set cpu topology in cpu policy
  libs/guest: rework xc_cpuid_xend_policy
  libs/guest: apply a featureset into a cpu policy
  libs/{light,guest}: implement xc_cpuid_apply_policy in libxl
  libs/guest: (re)move xc_cpu_policy_apply_cpuid

 tools/include/libxl.h                    |   6 +-
 tools/include/xenctrl.h                  |  99 ----
 tools/include/xenguest.h                 |  77 +++
 tools/libs/ctrl/xc_bitops.h              |   6 +-
 tools/libs/guest/xg_cpuid_x86.c          | 645 ++++++++---------------
 tools/libs/guest/xg_private.h            |   1 +
 tools/libs/light/libxl_cpuid.c           | 233 +++++++-
 tools/libs/light/libxl_internal.h        |  26 +
 tools/misc/xen-cpuid.c                   |   1 +
 tools/tests/cpu-policy/test-cpu-policy.c | 224 +++++++-
 xen/arch/x86/cpuid.c                     |  55 +-
 xen/include/xen/lib/x86/cpuid.h          |  26 +
 xen/include/xen/lib/x86/msr.h            |  20 +-
 xen/lib/x86/cpuid.c                      |  91 ++++
 xen/lib/x86/msr.c                        |  41 +-
 15 files changed, 946 insertions(+), 605 deletions(-)

-- 
2.34.1



             reply	other threads:[~2022-01-17  9:49 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-17  9:48 Roger Pau Monne [this message]
2022-01-17  9:48 ` [PATCH v6 01/12] libs/guest: move cpu policy related prototypes to xenguest.h Roger Pau Monne
2022-01-18  9:55   ` Anthony PERARD
2022-01-18 10:50     ` Roger Pau Monné
2022-01-17  9:48 ` [PATCH v6 02/12] libx86: introduce helper to fetch cpuid leaf Roger Pau Monne
2022-01-18 12:26   ` Andrew Cooper
2022-01-18 13:18     ` Jan Beulich
2022-01-18 16:17     ` Roger Pau Monné
2022-01-17  9:48 ` [PATCH v6 03/12] libs/guest: allow fetching a specific CPUID leaf from a cpu policy Roger Pau Monne
2022-01-17 12:28   ` Jan Beulich
2022-01-17  9:48 ` [PATCH v6 04/12] libx86: introduce helper to fetch msr entry Roger Pau Monne
2022-01-17  9:48 ` [PATCH v6 05/12] libs/guest: allow fetching a specific MSR entry from a cpu policy Roger Pau Monne
2022-01-17 12:29   ` Jan Beulich
2022-01-17  9:48 ` [PATCH v6 06/12] libs/guest: make a cpu policy compatible with older Xen versions Roger Pau Monne
2022-01-17  9:48 ` [PATCH v6 07/12] libs/guest: introduce helper set cpu topology in cpu policy Roger Pau Monne
2022-01-17  9:48 ` [PATCH v6 08/12] libs/guest: rework xc_cpuid_xend_policy Roger Pau Monne
2022-01-18 14:06   ` Andrew Cooper
2022-01-19 10:45     ` Roger Pau Monné
2022-01-17  9:48 ` [PATCH v6 09/12] libs/guest: apply a featureset into a cpu policy Roger Pau Monne
2022-01-17  9:48 ` [PATCH v6 10/12] libs/{light,guest}: implement xc_cpuid_apply_policy in libxl Roger Pau Monne
2022-01-18 13:37   ` Andrew Cooper
2022-01-19 13:37     ` Roger Pau Monné
2022-01-17  9:48 ` [PATCH v6 11/12] libs/guest: (re)move xc_cpu_policy_apply_cpuid Roger Pau Monne
2022-01-17  9:48 ` [PATCH v6 12/12] 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=20220117094827.16756-1-roger.pau@citrix.com \
    --to=roger.pau@citrix.com \
    --cc=andrew.cooper3@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.