From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Peng Subject: [PATCH v8 10/13] tools/libxl: add command to show PSR hardware info Date: Thu, 21 May 2015 16:41:41 +0800 Message-ID: <1432197704-20816-11-git-send-email-chao.p.peng@linux.intel.com> References: <1432197704-20816-1-git-send-email-chao.p.peng@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1432197704-20816-1-git-send-email-chao.p.peng@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: keir@xen.org, Ian.Campbell@citrix.com, stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, Ian.Jackson@eu.citrix.com, will.auld@intel.com, JBeulich@suse.com, wei.liu2@citrix.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org Add dedicated one to show hardware information. [root@vmm-psr]xl psr-hwinfo Cache Monitoring Technology (CMT): Enabled : 1 Total RMID : 63 Supported monitor types: cache-occupancy total-mem-bandwidth local-mem-bandwidth Signed-off-by: Chao Peng Reviewed-by: Dario Faggioli Acked-by: Ian Campbell --- Changes in v6: * Add SWITCH_FOREACH_OPT to make '-h' work. --- docs/man/xl.pod.1 | 4 ++++ tools/libxl/xl.h | 1 + tools/libxl/xl_cmdimpl.c | 41 +++++++++++++++++++++++++++++++++++++++++ tools/libxl/xl_cmdtable.c | 5 +++++ 4 files changed, 51 insertions(+) diff --git a/docs/man/xl.pod.1 b/docs/man/xl.pod.1 index 02bf531..b221882 100644 --- a/docs/man/xl.pod.1 +++ b/docs/man/xl.pod.1 @@ -1502,6 +1502,10 @@ for any of these monitoring types. =over 4 +=item B + +Show CMT hardware information. + =item B [I] attach: Attach the platform shared resource monitoring service to a domain. diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h index 5bc138c..7b56449 100644 --- a/tools/libxl/xl.h +++ b/tools/libxl/xl.h @@ -113,6 +113,7 @@ int main_remus(int argc, char **argv); #endif int main_devd(int argc, char **argv); #ifdef LIBXL_HAVE_PSR_CMT +int main_psr_hwinfo(int argc, char **argv); int main_psr_cmt_attach(int argc, char **argv); int main_psr_cmt_detach(int argc, char **argv); int main_psr_cmt_show(int argc, char **argv); diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index b58a242..b3c4ec0 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -8055,6 +8055,36 @@ out: } #ifdef LIBXL_HAVE_PSR_CMT +static int psr_cmt_hwinfo(void) +{ + int rc; + int enabled; + uint32_t total_rmid; + + printf("Cache Monitoring Technology (CMT):\n"); + + enabled = libxl_psr_cmt_enabled(ctx); + printf("%-16s: %s\n", "Enabled", enabled ? "1" : "0"); + if (!enabled) + return 0; + + rc = libxl_psr_cmt_get_total_rmid(ctx, &total_rmid); + if (rc) { + fprintf(stderr, "Failed to get max RMID value\n"); + return rc; + } + printf("%-16s: %u\n", "Total RMID", total_rmid); + + printf("Supported monitor types:\n"); + if (libxl_psr_cmt_type_supported(ctx, LIBXL_PSR_CMT_TYPE_CACHE_OCCUPANCY)) + printf("cache-occupancy\n"); + if (libxl_psr_cmt_type_supported(ctx, LIBXL_PSR_CMT_TYPE_TOTAL_MEM_COUNT)) + printf("total-mem-bandwidth\n"); + if (libxl_psr_cmt_type_supported(ctx, LIBXL_PSR_CMT_TYPE_LOCAL_MEM_COUNT)) + printf("local-mem-bandwidth\n"); + + return rc; +} #define MBM_SAMPLE_RETRY_MAX 4 static int psr_cmt_get_mem_bandwidth(uint32_t domid, @@ -8221,6 +8251,17 @@ static int psr_cmt_show(libxl_psr_cmt_type type, uint32_t domid) return 0; } +int main_psr_hwinfo(int argc, char **argv) +{ + int opt; + + SWITCH_FOREACH_OPT(opt, "", NULL, "psr-hwinfo", 0) { + /* No options */ + } + + return psr_cmt_hwinfo(); +} + int main_psr_cmt_attach(int argc, char **argv) { uint32_t domid; diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c index 12899d1..77a37c5 100644 --- a/tools/libxl/xl_cmdtable.c +++ b/tools/libxl/xl_cmdtable.c @@ -525,6 +525,11 @@ struct cmd_spec cmd_table[] = { "-F Run in the foreground", }, #ifdef LIBXL_HAVE_PSR_CMT + { "psr-hwinfo", + &main_psr_hwinfo, 0, 1, + "Show hardware information for Platform Shared Resource", + "", + }, { "psr-cmt-attach", &main_psr_cmt_attach, 0, 1, "Attach Cache Monitoring Technology service to a domain", -- 1.9.1