Message ID | 1487148579-7243-20-git-send-email-yi.y.sun@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Feb 15, 2017 at 04:49:34PM +0800, Yi Sun wrote: > This patch implements L2 CAT get value callback function and > interface in domctl. > > Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com> > --- > diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c > index 05100b4..2adf62c 100644 > --- a/xen/arch/x86/psr.c > +++ b/xen/arch/x86/psr.c > @@ -744,9 +744,21 @@ static bool l2_cat_get_feat_info(const struct feat_node *feat, > return true; > } > > +static bool l2_cat_get_val(const struct feat_node *feat, unsigned int cos, > + enum cbm_type type, uint64_t *val) > +{ > + if ( cos > feat->info.l2_cat_info.cos_max ) > + cos = 0; return false;? Roger.
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c index f8f5539..68c2d60 100644 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -1460,6 +1460,13 @@ long arch_do_domctl( copyback = 1; break; + case XEN_DOMCTL_PSR_CAT_OP_GET_L2_CBM: + ret = psr_get_val(d, domctl->u.psr_cat_op.target, + &domctl->u.psr_cat_op.data, + PSR_CBM_TYPE_L2); + copyback = 1; + break; + default: ret = -EOPNOTSUPP; break; diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c index 05100b4..2adf62c 100644 --- a/xen/arch/x86/psr.c +++ b/xen/arch/x86/psr.c @@ -744,9 +744,21 @@ static bool l2_cat_get_feat_info(const struct feat_node *feat, return true; } +static bool l2_cat_get_val(const struct feat_node *feat, unsigned int cos, + enum cbm_type type, uint64_t *val) +{ + if ( cos > feat->info.l2_cat_info.cos_max ) + cos = 0; + + *val = feat->cos_reg_val[cos]; + + return true; +} + struct feat_ops l2_cat_ops = { .get_cos_max = l2_cat_get_cos_max, .get_feat_info = l2_cat_get_feat_info, + .get_val = l2_cat_get_val, }; static void __init parse_psr_bool(char *s, char *value, char *feature, diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index 85cbb7c..8c183ba 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -1138,6 +1138,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_GET_L2_CBM 7 uint32_t cmd; /* IN: XEN_DOMCTL_PSR_CAT_OP_* */ uint32_t target; /* IN */ uint64_t data; /* IN/OUT */
This patch implements L2 CAT get value callback function and interface in domctl. Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com> --- xen/arch/x86/domctl.c | 7 +++++++ xen/arch/x86/psr.c | 12 ++++++++++++ xen/include/public/domctl.h | 1 + 3 files changed, 20 insertions(+)