[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.