Mailing List Archive

[PATCH v3 00/13] libs/guest: new CPUID/MSR interface
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.

Thanks, Roger.

Roger Pau Monne (13):
libxl: don't ignore the return value from xc_cpuid_apply_policy
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: 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 | 6 +-
tools/include/xen-tools/libs.h | 5 +
tools/include/xenctrl.h | 75 ++-
tools/libs/guest/Makefile | 2 +-
tools/libs/guest/xg_cpuid_x86.c | 832 ++++++++++++++++--------------
tools/libs/light/libxl_cpuid.c | 231 ++++++++-
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 +-
10 files changed, 744 insertions(+), 451 deletions(-)

--
2.31.1