|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 26/30] tools/libxc: Expose the automatically generated cpu featuremask information
On Fri, Feb 05, 2016 at 01:42:19PM +0000, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
>
> New in v2
> ---
> tools/libxc/Makefile | 9 ++++++
> tools/libxc/include/xenctrl.h | 14 ++++++++
> tools/libxc/xc_cpuid_x86.c | 75
> +++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 98 insertions(+)
>
> diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
> index 0a8614c..30de3fe 100644
> --- a/tools/libxc/Makefile
> +++ b/tools/libxc/Makefile
> @@ -145,6 +145,15 @@ $(eval $(genpath-target))
>
> xc_private.h: _paths.h
>
> +ifeq ($(CONFIG_X86),y)
> +
> +_xc_cpuid_autogen.h: $(XEN_ROOT)/xen/include/public/arch-x86/cpufeatureset.h
> $(XEN_ROOT)/xen/tools/gen-cpuid.py
> + $(PYTHON) $(XEN_ROOT)/xen/tools/gen-cpuid.py -i $^ -o $@.new
I don't seem to see this file in tree or in this series.
And I think ultimately that file should be maintained by x86
maintainers.
> + $(call move-if-changed,$@.new,$@)
> +
> +build: _xc_cpuid_autogen.h
> +endif
> +
> $(CTRL_LIB_OBJS) $(GUEST_LIB_OBJS) \
> $(CTRL_PIC_OBJS) $(GUEST_PIC_OBJS): xc_private.h
>
> diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
> index 5a7500a..1da372d 100644
> --- a/tools/libxc/include/xenctrl.h
> +++ b/tools/libxc/include/xenctrl.h
> @@ -2574,6 +2574,20 @@ int xc_psr_cat_get_l3_info(xc_interface *xch, uint32_t
> socket,
>
> int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,
> uint32_t *nr_features, uint32_t *featureset);
> +
> +uint32_t xc_get_cpu_featureset_size(void);
> +
> +enum xc_static_cpu_featuremask {
> + XC_FEATUREMASK_KNOWN,
> + XC_FEATUREMASK_INVERTED,
> + XC_FEATUREMASK_PV,
> + XC_FEATUREMASK_HVM_SHADOW,
> + XC_FEATUREMASK_HVM_HAP,
> + XC_FEATUREMASK_DEEP_FEATURES,
> +};
> +const uint32_t *xc_get_static_cpu_featuremask(enum
> xc_static_cpu_featuremask);
> +const uint32_t *xc_get_feature_deep_deps(uint32_t feature);
> +
> #endif
>
> /* Compat shims */
> diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> index 348cbdd..7ef37d2 100644
> --- a/tools/libxc/xc_cpuid_x86.c
> +++ b/tools/libxc/xc_cpuid_x86.c
> @@ -22,6 +22,7 @@
> #include <stdlib.h>
> #include <stdbool.h>
> #include "xc_private.h"
> +#include "_xc_cpuid_autogen.h"
> #include <xen/arch-x86/cpufeatureset.h>
> #include <xen/hvm/params.h>
>
> @@ -60,6 +61,80 @@ int xc_get_cpu_featureset(xc_interface *xch, uint32_t
> index,
> return ret;
> }
>
> +uint32_t xc_get_cpu_featureset_size(void)
> +{
> + return FEATURESET_NR_ENTRIES;
> +}
> +
> +const uint32_t *xc_get_static_cpu_featuremask(
> + enum xc_static_cpu_featuremask mask)
I can only get a vague idea how these functions are supposed to work. I
think I will leave this to hypervisor maintainers.
Wei.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |