[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v5 11/13] tools/libxl: add command to show CMT hardware info
Add dedicated one to show hardware information. [root@vmm-psr]xl psr-cmt-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 <chao.p.peng@xxxxxxxxxxxxxxx> --- docs/man/xl.pod.1 | 4 ++++ tools/libxl/xl.h | 1 + tools/libxl/xl_cmdimpl.c | 35 +++++++++++++++++++++++++++++++++++ tools/libxl/xl_cmdtable.c | 5 +++++ 4 files changed, 45 insertions(+) diff --git a/docs/man/xl.pod.1 b/docs/man/xl.pod.1 index 16783c8..640788f 100644 --- a/docs/man/xl.pod.1 +++ b/docs/man/xl.pod.1 @@ -1495,6 +1495,10 @@ for any of these monitoring types. =over 4 +=item B<psr-cmt-hwinfo> + +Show CMT hardware information. + =item B<psr-cmt-attach> [I<domain-id>] 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..1c526dc 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_cmt_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 c666d84..4ab5e8b 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -8014,6 +8014,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, @@ -8180,6 +8210,11 @@ static int psr_cmt_show(libxl_psr_cmt_type type, uint32_t domid) return 0; } +int main_psr_cmt_hwinfo(int argc, char **argv) +{ + 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 9284887..dc25d1f 100644 --- a/tools/libxl/xl_cmdtable.c +++ b/tools/libxl/xl_cmdtable.c @@ -524,6 +524,11 @@ struct cmd_spec cmd_table[] = { "-F Run in the foreground", }, #ifdef LIBXL_HAVE_PSR_CMT + { "psr-cmt-hwinfo", + &main_psr_cmt_hwinfo, 0, 1, + "Show hardware information for Cache Monitoring Technology", + "", + }, { "psr-cmt-attach", &main_psr_cmt_attach, 0, 1, "Attach Cache Monitoring Technology service to a domain", -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |