Message ID | 1487148579-7243-16-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:30PM +0800, Yi Sun wrote: > This patch implements L3 CDP get value callback function. > > With this patch, 'psr-cat-show' can work for L3 CDP. > > Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com> > --- > xen/arch/x86/psr.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c > index 72c9888..72ed923 100644 > --- a/xen/arch/x86/psr.c > +++ b/xen/arch/x86/psr.c > @@ -545,9 +545,25 @@ static bool l3_cdp_get_feat_info(const struct feat_node *feat, > return true; > } > > +static bool l3_cdp_get_val(const struct feat_node *feat, unsigned int cos, > + enum cbm_type type, uint64_t *val) > +{ > + if ( cos > feat->info.l3_cdp_info.cos_max ) > + /* Use default value. */ > + cos = 0; As with the other get_val, I think that this should return false. Roger.
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c index 72c9888..72ed923 100644 --- a/xen/arch/x86/psr.c +++ b/xen/arch/x86/psr.c @@ -545,9 +545,25 @@ static bool l3_cdp_get_feat_info(const struct feat_node *feat, return true; } +static bool l3_cdp_get_val(const struct feat_node *feat, unsigned int cos, + enum cbm_type type, uint64_t *val) +{ + if ( cos > feat->info.l3_cdp_info.cos_max ) + /* Use default value. */ + cos = 0; + + if ( type == PSR_CBM_TYPE_L3_DATA ) + *val = get_cdp_data(feat, cos); + else + *val = get_cdp_code(feat, cos); + + return true; +} + struct feat_ops l3_cdp_ops = { .get_cos_max = l3_cdp_get_cos_max, .get_feat_info = l3_cdp_get_feat_info, + .get_val = l3_cdp_get_val, }; static void __init parse_psr_bool(char *s, char *value, char *feature,
This patch implements L3 CDP get value callback function. With this patch, 'psr-cat-show' can work for L3 CDP. Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com> --- xen/arch/x86/psr.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)