|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 3/4] tools: add tools support for Intel CDP
On Wed, Sep 09, 2015 at 01:16:47PM +0800, He Chen wrote:
> This is the xl/xc changes to support Intel Code/Data Prioritization.
> CAT xl commands to set/get CBMs are extended to support CDP.
>
> Signed-off-by: He Chen <he.chen@xxxxxxxxxxxxxxx>
> ---
> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
> index 5f9047c..e4eb4df 100644
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h
> @@ -796,6 +796,13 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst,
> libxl_mac *src);
> * If this is defined, the Cache Allocation Technology feature is supported.
> */
> #define LIBXL_HAVE_PSR_CAT 1
> +
> +/*
> + * LIBXL_HAVE_PSR_CDP
> + *
> + * If this is defined, the Code/Data Prioritization feature is supported.
> + */
> +#define LIBXL_HAVE_PSR_CDP 1
> #endif
>
> /*
> @@ -1729,6 +1736,9 @@ int libxl_psr_cat_get_l3_info(libxl_ctx *ctx,
> libxl_psr_cat_info **info,
> void libxl_psr_cat_info_list_free(libxl_psr_cat_info *list, int nr);
> #endif
>
> +#ifdef LIBXL_HAVE_PSR_CDP
> +#endif
> +
Why this? There are several of them in this patch.
> /* misc */
>
> /* Each of these sets or clears the flag according to whether the
> diff --git a/tools/libxl/libxl_psr.c b/tools/libxl/libxl_psr.c
> index 3378239..26939a5 100644
> --- a/tools/libxl/libxl_psr.c
> +++ b/tools/libxl/libxl_psr.c
> @@ -297,6 +297,7 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid,
> GC_INIT(ctx);
> int rc;
> int socketid, nr_sockets;
> + libxl_psr_cat_info *info;
>
> rc = libxl__count_physical_sockets(gc, &nr_sockets);
> if (rc) {
> @@ -304,14 +305,41 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t
> domid,
> goto out;
> }
>
> + rc = libxl_psr_cat_get_l3_info(ctx, &info, &nr_sockets);
> + if (rc) {
> + LOGE(ERROR, "Failed to get cat info");
> + goto out;
> + }
> +
> + if (!info->cdp_enabled &&
> + (type == LIBXL_PSR_CBM_TYPE_L3_CODE ||
> + type == LIBXL_PSR_CBM_TYPE_L3_DATA))
> + {
> + LOGE(ERROR, "Unable to set Code/Data CBM with CDP disabled");
> + rc = EINVAL;
> + free(info);
> + goto out;
> + }
> +
> libxl_for_each_set_bit(socketid, *target_map) {
> if (socketid >= nr_sockets)
> break;
> - if (xc_psr_cat_set_domain_data(ctx->xch, domid, type, socketid,
> cbm)) {
> + if (info->cdp_enabled && type == LIBXL_PSR_CBM_TYPE_L3_CBM)
> + {
> + if(xc_psr_cat_set_domain_data(ctx->xch, domid,
> + LIBXL_PSR_CBM_TYPE_L3_CODE, socketid, cbm) ||
> + xc_psr_cat_set_domain_data(ctx->xch, domid,
> + LIBXL_PSR_CBM_TYPE_L3_DATA, socketid, cbm))
> + {
> + libxl__psr_cat_log_err_msg(gc, errno);
> + rc = ERROR_FAIL;
> + }
Will you merge the two if's?
Chao
> + } else if (xc_psr_cat_set_domain_data(ctx->xch, domid, type,
> socketid, cbm)) {
> libxl__psr_cat_log_err_msg(gc, errno);
> rc = ERROR_FAIL;
> }
> }
> + free(info);
>
> out:
> GC_FREE;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |