From: Yi Sun Date: Tue, 1 Aug 2017 09:05:00 +0000 (+0200) Subject: x86: L2 CAT: implement set value flow. X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1731 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a29ea3bb5b5036f19797fd5dcd9ba240e1adb98f;p=xen.git x86: L2 CAT: implement set value flow. This patch implements L2 CAT set value related callback function and domctl interface. Signed-off-by: Yi Sun Reviewed-by: Jan Beulich --- diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c index b4847b6f8b..127c84e714 100644 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -1462,6 +1462,12 @@ long arch_do_domctl( PSR_CBM_TYPE_L3_DATA); break; + case XEN_DOMCTL_PSR_CAT_OP_SET_L2_CBM: + ret = psr_set_val(d, domctl->u.psr_cat_op.target, + domctl->u.psr_cat_op.data, + PSR_CBM_TYPE_L2); + break; + case XEN_DOMCTL_PSR_CAT_OP_GET_L3_CBM: ret = psr_get_val(d, domctl->u.psr_cat_op.target, &val32, PSR_CBM_TYPE_L3); diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c index 4dd9112d3e..7d9fa265f3 100644 --- a/xen/arch/x86/psr.c +++ b/xen/arch/x86/psr.c @@ -408,6 +408,7 @@ static const struct feat_props l3_cdp_props = { /* L2 CAT props */ static void l2_cat_write_msr(unsigned int cos, uint32_t val, enum cbm_type type) { + wrmsrl(MSR_IA32_PSR_L2_MASK(cos), val); } static const struct feat_props l2_cat_props = { diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index 61d44cd3b9..0669c3161c 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -1142,6 +1142,7 @@ struct xen_domctl_psr_cat_op { #define XEN_DOMCTL_PSR_CAT_OP_SET_L3_DATA 3 #define XEN_DOMCTL_PSR_CAT_OP_GET_L3_CODE 4 #define XEN_DOMCTL_PSR_CAT_OP_GET_L3_DATA 5 +#define XEN_DOMCTL_PSR_CAT_OP_SET_L2_CBM 6 #define XEN_DOMCTL_PSR_CAT_OP_GET_L2_CBM 7 uint32_t cmd; /* IN: XEN_DOMCTL_PSR_CAT_OP_* */ uint32_t target; /* IN */