|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 5/5] tools: add total/local memory bandwith monitoring
On Wed, Jan 07, 2015 at 07:12:05PM +0800, Chao Peng wrote:
[...]
> +static int libxl__psr_cmt_get_mem_bandwidth(libxl__gc *gc,
> + uint32_t domid,
> + xc_psr_cmt_type type,
> + uint32_t socketid,
> + uint32_t *bandwidth)
> +{
> + uint64_t sample1, sample2;
> + uint32_t upscaling_factor;
> + int retry_attempts = 0;
> + int rc;
> +
> +retry:
> + rc = libxl__psr_cmt_get_l3_monitoring_data(gc, domid, type, socketid,
> + &sample1);
> + if (rc < 0)
> + return ERROR_FAIL;
> +
> + usleep(10000);
> +
> + rc = libxl__psr_cmt_get_l3_monitoring_data(gc, domid, type, socketid,
> + &sample2);
> + if (rc < 0)
> + return ERROR_FAIL;
> +
> + if (sample2 < sample1) {
> + if (retry_attempts < MBM_SAMPLE_RETRY_MAX) {
> + retry_attempts++;
> + goto retry;
> + } else {
> + LOGE(ERROR, "event counter overflowed");
> + return ERROR_FAIL;
> + }
> + }
> +
Two things:
1. Use for/while for retry loop, don't use goto.
2. Use "goto out" idiom for error handling.
The "goto out" idiom is part of documented libxl error handling section
in tools/libxl/CODING_STYLE. You might find that document useful
reference.
Wei.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |