xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/21] libs/guest: new CPUID/MSR interface
@ 2021-03-23  9:58 Roger Pau Monne
  2021-03-23  9:58 ` [PATCH 01/21] libxl: don't ignore the return value from xc_cpuid_apply_policy Roger Pau Monne
                   ` (20 more replies)
  0 siblings, 21 replies; 52+ messages in thread
From: Roger Pau Monne @ 2021-03-23  9:58 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Roger Pau Monne, Ian Jackson, Wei Liu,
	Anthony PERARD, Jan Beulich

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.

There are two functions kind of related that I've left alone:

int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps);
int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
                          uint32_t *nr_features, uint32_t *featureset);

We might want to rename those to also use the xc_cpu_* prefix at least?
Using xc_cpu_policy_* would be wrong here IMO, as such functions don't
use the newly introduced xc_cpu_policy_t object.

Thanks, Roger.

Roger Pau Monne (21):
  libxl: don't ignore the return value from xc_cpuid_apply_policy
  libs/guest: rename xc_get_cpu_policy_size to xc_cpu_policy_get_size
  libs/guest: introduce xc_cpu_policy_t
  libs/guest: introduce helper to fetch a system cpu policy
  libs/guest: introduce helper to fetch a domain cpu policy
  libs/guest: introduce helper to serialize a cpu policy
  tools: switch existing users of xc_get_{system,domain}_cpu_policy
  libs/guest: introduce a helper to apply a cpu policy to a domain
  libs/guest: allow fetching a specific CPUID leaf from a cpu policy
  libs/guest: allow fetching a specific MSR entry from a cpu policy
  libs/guest: allow updating a cpu policy CPUID data
  libs/guest: allow updating a cpu policy MSR data
  libs/guest: switch users of xc_set_domain_cpu_policy
  libs/guest: introduce helper to check cpu policy compatibility
  libs/guest: obtain a compatible cpu policy from two input ones
  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               |   4 +-
 tools/include/xen-tools/libs.h      |   5 +
 tools/include/xenctrl.h             | 107 ++--
 tools/libs/guest/Makefile           |   2 +-
 tools/libs/guest/xg_cpuid_x86.c     | 849 +++++++++++++++++++---------
 tools/libs/guest/xg_sr_common_x86.c |  45 +-
 tools/libs/light/libxl_cpuid.c      | 229 +++++++-
 tools/libs/light/libxl_create.c     |   5 +-
 tools/libs/light/libxl_dom.c        |   2 +-
 tools/libs/light/libxl_internal.h   |  32 +-
 tools/libs/light/libxl_nocpuid.c    |   5 +-
 tools/misc/xen-cpuid.c              |  23 +-
 12 files changed, 960 insertions(+), 348 deletions(-)

-- 
2.30.1



^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2021-04-09 14:58 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-23  9:58 [PATCH 00/21] libs/guest: new CPUID/MSR interface Roger Pau Monne
2021-03-23  9:58 ` [PATCH 01/21] libxl: don't ignore the return value from xc_cpuid_apply_policy Roger Pau Monne
2021-03-30 15:21   ` Jan Beulich
2021-03-30 15:38   ` Andrew Cooper
2021-03-31 18:12   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 02/21] libs/guest: rename xc_get_cpu_policy_size to xc_cpu_policy_get_size Roger Pau Monne
2021-03-31 19:03   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 03/21] libs/guest: introduce xc_cpu_policy_t Roger Pau Monne
2021-03-31 20:10   ` Andrew Cooper
2021-04-01  8:48     ` Roger Pau Monné
2021-03-23  9:58 ` [PATCH 04/21] libs/guest: introduce helper to fetch a system cpu policy Roger Pau Monne
2021-03-30 15:35   ` Jan Beulich
2021-04-01 13:56   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 05/21] libs/guest: introduce helper to fetch a domain " Roger Pau Monne
2021-03-30 15:37   ` Jan Beulich
2021-03-31 11:06     ` Roger Pau Monné
2021-04-01 13:32       ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 06/21] libs/guest: introduce helper to serialize a " Roger Pau Monne
2021-03-23  9:58 ` [PATCH 07/21] tools: switch existing users of xc_get_{system,domain}_cpu_policy Roger Pau Monne
2021-03-23  9:58 ` [PATCH 08/21] libs/guest: introduce a helper to apply a cpu policy to a domain Roger Pau Monne
2021-03-23  9:58 ` [PATCH 09/21] libs/guest: allow fetching a specific CPUID leaf from a cpu policy Roger Pau Monne
2021-04-01 14:47   ` Andrew Cooper
2021-04-08 15:53     ` Roger Pau Monné
2021-03-23  9:58 ` [PATCH 10/21] libs/guest: allow fetching a specific MSR entry " Roger Pau Monne
2021-03-23  9:58 ` [PATCH 11/21] libs/guest: allow updating a cpu policy CPUID data Roger Pau Monne
2021-03-30 15:56   ` Jan Beulich
2021-03-31 12:47     ` Roger Pau Monné
2021-04-01 14:55   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 12/21] libs/guest: allow updating a cpu policy MSR data Roger Pau Monne
2021-03-23  9:58 ` [PATCH 13/21] libs/guest: switch users of xc_set_domain_cpu_policy Roger Pau Monne
2021-04-01 15:04   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 14/21] libs/guest: introduce helper to check cpu policy compatibility Roger Pau Monne
2021-03-30 16:02   ` Jan Beulich
2021-03-31 12:40     ` Roger Pau Monné
2021-03-31 14:57       ` Jan Beulich
2021-04-01 16:14   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 15/21] libs/guest: obtain a compatible cpu policy from two input ones Roger Pau Monne
2021-03-31 15:24   ` Jan Beulich
2021-04-01 16:26   ` Andrew Cooper
2021-04-09 10:56     ` Roger Pau Monné
2021-03-23  9:58 ` [PATCH 16/21] libs/guest: make a cpu policy compatible with older Xen versions Roger Pau Monne
2021-03-31 15:29   ` Jan Beulich
2021-04-01 16:31   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 17/21] libs/guest: introduce helper set cpu topology in cpu policy Roger Pau Monne
2021-04-01 17:22   ` Andrew Cooper
2021-03-23  9:58 ` [PATCH 18/21] libs/guest: rework xc_cpuid_xend_policy Roger Pau Monne
2021-03-23  9:58 ` [PATCH 19/21] libs/guest: apply a featureset into a cpu policy Roger Pau Monne
2021-03-23  9:58 ` [PATCH 20/21] libs/{light,guest}: implement xc_cpuid_apply_policy in libxl Roger Pau Monne
2021-04-01 17:44   ` Andrew Cooper
2021-04-09 14:57     ` Roger Pau Monné
2021-03-23  9:58 ` [PATCH 21/21] libs/guest: (re)move xc_cpu_policy_apply_cpuid Roger Pau Monne
2021-04-01 17:53   ` Andrew Cooper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).