Message ID | 1504603957-5389-12-git-send-email-yi.y.sun@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Sep 05, 2017 at 05:32:33PM +0800, Yi Sun wrote: > This patch implements a new xl get HW info interface. A new argument > is added for psr-hwinfo command to get and show MBA HW info. > > Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com> > --- > v3: > - change the format string of printf in 'psr_mba_hwinfo'. > (suggested by Roger Pau Monné) > - add 'const' for 'opts[]' in 'main_psr_hwinfo'. > (suggested by Roger Pau Monné) > v2: > - split out this patch from a big patch in v1. > (suggested by Wei Liu) > - change 'MBA_INFO' to 'MBA'. Also, change 'mba_info' to 'mba'. > (suggested by Chao Peng) > --- > tools/xl/xl_cmdtable.c | 1 + > tools/xl/xl_psr.c | 40 +++++++++++++++++++++++++++++++++++++--- > 2 files changed, 38 insertions(+), 3 deletions(-) > > diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c > index 6baaed2..a01245d 100644 > --- a/tools/xl/xl_cmdtable.c > +++ b/tools/xl/xl_cmdtable.c > @@ -524,6 +524,7 @@ struct cmd_spec cmd_table[] = { > "[options]", > "-m, --cmt Show Cache Monitoring Technology (CMT) hardware info\n" > "-a, --cat Show Cache Allocation Technology (CAT) hardware info\n" > + "-b, --mba Show Memory Bandwidth Allocation (MBA) hardware info\n" > }, > { "psr-cmt-attach", > &main_psr_cmt_attach, 0, 1, > diff --git a/tools/xl/xl_psr.c b/tools/xl/xl_psr.c > index ef00048..40269b4 100644 > --- a/tools/xl/xl_psr.c > +++ b/tools/xl/xl_psr.c > @@ -475,6 +475,32 @@ static int psr_l2_cat_hwinfo(void) > return rc; > } > > +static int psr_mba_hwinfo(void) > +{ > + int rc; > + unsigned int i, nr; > + libxl_psr_hw_info *info; > + > + rc = libxl_psr_get_hw_info(ctx, &info, &nr, > + LIBXL_PSR_FEAT_TYPE_MBA, 0); > + if (rc) > + return rc; > + > + printf("Memory Bandwidth Allocation (MBA):\n"); > + > + for (i = 0; i < nr; i++) { > + printf("Socket ID : %u\n", info[i].id); > + printf("Linear Mode : %s\n", > + info[i].u.mba.linear ? "Enabled" : "Disabled"); > + printf("Maximum COS : %u\n", info[i].u.mba.cos_max); > + printf("Maximum Throttling Value: %u\n", info[i].u.mba.thrtl_max); > + printf("Default Throttling Value: %u\n", 0); What's the point in printing a default value if it's always 0? Ie: this can be on the docs, but I don't think is meaningful here. Thanks, Roger.
On 17-09-19 11:32:19, Roger Pau Monn� wrote: > On Tue, Sep 05, 2017 at 05:32:33PM +0800, Yi Sun wrote: > > index 6baaed2..a01245d 100644 > > --- a/tools/xl/xl_cmdtable.c > > +++ b/tools/xl/xl_cmdtable.c > > +static int psr_mba_hwinfo(void) > > +{ > > + int rc; > > + unsigned int i, nr; > > + libxl_psr_hw_info *info; > > + > > + rc = libxl_psr_get_hw_info(ctx, &info, &nr, > > + LIBXL_PSR_FEAT_TYPE_MBA, 0); > > + if (rc) > > + return rc; > > + > > + printf("Memory Bandwidth Allocation (MBA):\n"); > > + > > + for (i = 0; i < nr; i++) { > > + printf("Socket ID : %u\n", info[i].id); > > + printf("Linear Mode : %s\n", > > + info[i].u.mba.linear ? "Enabled" : "Disabled"); > > + printf("Maximum COS : %u\n", info[i].u.mba.cos_max); > > + printf("Maximum Throttling Value: %u\n", info[i].u.mba.thrtl_max); > > + printf("Default Throttling Value: %u\n", 0); > > What's the point in printing a default value if it's always 0? Ie: > this can be on the docs, but I don't think is meaningful here. > This follows the convention of CAT. It shows the default CBM. > Thanks, Roger.
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c index 6baaed2..a01245d 100644 --- a/tools/xl/xl_cmdtable.c +++ b/tools/xl/xl_cmdtable.c @@ -524,6 +524,7 @@ struct cmd_spec cmd_table[] = { "[options]", "-m, --cmt Show Cache Monitoring Technology (CMT) hardware info\n" "-a, --cat Show Cache Allocation Technology (CAT) hardware info\n" + "-b, --mba Show Memory Bandwidth Allocation (MBA) hardware info\n" }, { "psr-cmt-attach", &main_psr_cmt_attach, 0, 1, diff --git a/tools/xl/xl_psr.c b/tools/xl/xl_psr.c index ef00048..40269b4 100644 --- a/tools/xl/xl_psr.c +++ b/tools/xl/xl_psr.c @@ -475,6 +475,32 @@ static int psr_l2_cat_hwinfo(void) return rc; } +static int psr_mba_hwinfo(void) +{ + int rc; + unsigned int i, nr; + libxl_psr_hw_info *info; + + rc = libxl_psr_get_hw_info(ctx, &info, &nr, + LIBXL_PSR_FEAT_TYPE_MBA, 0); + if (rc) + return rc; + + printf("Memory Bandwidth Allocation (MBA):\n"); + + for (i = 0; i < nr; i++) { + printf("Socket ID : %u\n", info[i].id); + printf("Linear Mode : %s\n", + info[i].u.mba.linear ? "Enabled" : "Disabled"); + printf("Maximum COS : %u\n", info[i].u.mba.cos_max); + printf("Maximum Throttling Value: %u\n", info[i].u.mba.thrtl_max); + printf("Default Throttling Value: %u\n", 0); + } + + libxl_psr_hw_info_list_free(info, nr); + return rc; +} + int main_psr_cat_cbm_set(int argc, char **argv) { uint32_t domid; @@ -593,20 +619,24 @@ int main_psr_cat_show(int argc, char **argv) int main_psr_hwinfo(int argc, char **argv) { int opt, ret = 0; - bool all = true, cmt = false, cat = false; - static struct option opts[] = { + bool all = true, cmt = false, cat = false, mba = false; + static const struct option opts[] = { {"cmt", 0, 0, 'm'}, {"cat", 0, 0, 'a'}, + {"mba", 0, 0, 'b'}, COMMON_LONG_OPTS }; - SWITCH_FOREACH_OPT(opt, "ma", opts, "psr-hwinfo", 0) { + SWITCH_FOREACH_OPT(opt, "mab", opts, "psr-hwinfo", 0) { case 'm': all = false; cmt = true; break; case 'a': all = false; cat = true; break; + case 'b': + all = false; mba = true; + break; } if (!ret && (all || cmt)) @@ -619,6 +649,10 @@ int main_psr_hwinfo(int argc, char **argv) if (all || cat) ret = psr_l2_cat_hwinfo(); + /* MBA is independent of CMT and CAT */ + if (all || mba) + ret = psr_mba_hwinfo(); + return ret; }
This patch implements a new xl get HW info interface. A new argument is added for psr-hwinfo command to get and show MBA HW info. Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com> --- v3: - change the format string of printf in 'psr_mba_hwinfo'. (suggested by Roger Pau Monné) - add 'const' for 'opts[]' in 'main_psr_hwinfo'. (suggested by Roger Pau Monné) v2: - split out this patch from a big patch in v1. (suggested by Wei Liu) - change 'MBA_INFO' to 'MBA'. Also, change 'mba_info' to 'mba'. (suggested by Chao Peng) --- tools/xl/xl_cmdtable.c | 1 + tools/xl/xl_psr.c | 40 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 3 deletions(-)