X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=stat.c;h=7c843e6b1423497ba3b0bf6b44227285d9c1e6c7;hp=351c49cc4f720024a7b500b525e9a32657e65299;hb=5d89c625949d8d4ae4abaefbc77b90d79cc8d09a;hpb=fda82fda074d910fd2939d004b3a73c06da40445 diff --git a/stat.c b/stat.c index 351c49cc..7c843e6b 100644 --- a/stat.c +++ b/stat.c @@ -139,7 +139,6 @@ unsigned int calc_clat_percentiles(uint64_t *io_u_plat, unsigned long long nr, { unsigned long long sum = 0; unsigned int len, i, j = 0; - unsigned int oval_len = 0; unsigned long long *ovals = NULL; bool is_last; @@ -161,6 +160,10 @@ unsigned int calc_clat_percentiles(uint64_t *io_u_plat, unsigned long long nr, if (len > 1) qsort((void *)plist, len, sizeof(plist[0]), double_cmp); + ovals = malloc(len * sizeof(*ovals)); + if (!ovals) + return 0; + /* * Calculate bucket values, note down max and min values */ @@ -170,11 +173,6 @@ unsigned int calc_clat_percentiles(uint64_t *io_u_plat, unsigned long long nr, while (sum >= (plist[j].u.f / 100.0 * nr)) { assert(plist[j].u.f <= 100.0); - if (j == oval_len) { - oval_len += 100; - ovals = realloc(ovals, oval_len * sizeof(*ovals)); - } - ovals[j] = plat_idx_to_val(i); if (ovals[j] < *minv) *minv = ovals[j];