[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v10 3/4] tools/libxl: code refactoring for MBM
Make some internal routines common so that total/local memory bandwidth monitoring in the next patch can make use of them. Signed-off-by: Chao Peng <chao.p.peng@xxxxxxxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- Changes in v10: 1. Merge libxl change into next patch. 2. Minor function name changes to make them more generic. --- tools/libxl/xl_cmdimpl.c | 54 +++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 8b41093..846a4b2 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -7822,8 +7822,9 @@ out: } #ifdef LIBXL_HAVE_PSR_CMT -static void psr_cmt_print_domain_cache_occupancy(libxl_dominfo *dominfo, - uint32_t nr_sockets) +static void psr_cmt_print_domain_info(libxl_dominfo *dominfo, + libxl_psr_cmt_type type, + uint32_t nr_sockets) { char *domain_name; uint32_t socketid; @@ -7837,15 +7838,23 @@ static void psr_cmt_print_domain_cache_occupancy(libxl_dominfo *dominfo, free(domain_name); for (socketid = 0; socketid < nr_sockets; socketid++) { - if (!libxl_psr_cmt_get_cache_occupancy(ctx, dominfo->domid, socketid, - &l3_cache_occupancy)) - printf("%13u KB", l3_cache_occupancy); + switch (type) { + case LIBXL_PSR_CMT_TYPE_CACHE_OCCUPANCY: + if (!libxl_psr_cmt_get_cache_occupancy(ctx, + dominfo->domid, + socketid, + &l3_cache_occupancy)) + printf("%13u KB", l3_cache_occupancy); + break; + default: + return; + } } printf("\n"); } -static int psr_cmt_show_cache_occupancy(uint32_t domid) +static int psr_cmt_show(libxl_psr_cmt_type type, uint32_t domid) { uint32_t i, socketid, nr_sockets, total_rmid; uint32_t l3_cache_size; @@ -7881,19 +7890,22 @@ static int psr_cmt_show_cache_occupancy(uint32_t domid) printf("%14s %d", "Socket", socketid); printf("\n"); - /* Total L3 cache size */ - printf("%-46s", "Total L3 Cache Size"); - for (socketid = 0; socketid < nr_sockets; socketid++) { - rc = libxl_psr_cmt_get_l3_cache_size(ctx, socketid, &l3_cache_size); - if (rc < 0) { - fprintf(stderr, - "Failed to get system l3 cache size for socket:%d\n", - socketid); - return -1; - } - printf("%13u KB", l3_cache_size); + if (type == LIBXL_PSR_CMT_TYPE_CACHE_OCCUPANCY) { + /* Total L3 cache size */ + printf("%-46s", "Total L3 Cache Size"); + for (socketid = 0; socketid < nr_sockets; socketid++) { + rc = libxl_psr_cmt_get_l3_cache_size(ctx, socketid, + &l3_cache_size); + if (rc < 0) { + fprintf(stderr, + "Failed to get system l3 cache size for socket:%d\n", + socketid); + return -1; + } + printf("%13u KB", l3_cache_size); + } + printf("\n"); } - printf("\n"); /* Each domain */ if (domid != INVALID_DOMID) { @@ -7902,7 +7914,7 @@ static int psr_cmt_show_cache_occupancy(uint32_t domid) fprintf(stderr, "Failed to get domain info for %d\n", domid); return -1; } - psr_cmt_print_domain_cache_occupancy(&dominfo, nr_sockets); + psr_cmt_print_domain_info(&dominfo, type, nr_sockets); } else { @@ -7912,7 +7924,7 @@ static int psr_cmt_show_cache_occupancy(uint32_t domid) return -1; } for (i = 0; i < nr_domains; i++) - psr_cmt_print_domain_cache_occupancy(list + i, nr_sockets); + psr_cmt_print_domain_info(list + i, type, nr_sockets); libxl_dominfo_list_free(list, nr_domains); } return 0; @@ -7971,7 +7983,7 @@ int main_psr_cmt_show(int argc, char **argv) switch (type) { case LIBXL_PSR_CMT_TYPE_CACHE_OCCUPANCY: - ret = psr_cmt_show_cache_occupancy(domid); + ret = psr_cmt_show(type, domid); break; default: help("psr-cmt-show"); -- 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 |