In group_run_stats, convert these fields:
* io_kb (bytes transferred)
* agg (aggregate average bandwidth)
* min_bw
* max_bw
from tracking either KiB or KB depending on kb_base to simply tracking bytes.
Rename io_kb to iobytes to match this new meaning.
This will simplify computing quantities and bandwidth rates with both IEC
binary and SI decimal unit prefixes (e.g., GiB/s and GB/s) in future patches.
Signed-off-by: Jens Axboe <axboe@fb.com>
dst->min_run[i] = le64_to_cpu(src->min_run[i]);
dst->max_bw[i] = le64_to_cpu(src->max_bw[i]);
dst->min_bw[i] = le64_to_cpu(src->min_bw[i]);
dst->min_run[i] = le64_to_cpu(src->min_run[i]);
dst->max_bw[i] = le64_to_cpu(src->max_bw[i]);
dst->min_bw[i] = le64_to_cpu(src->min_bw[i]);
- dst->io_kb[i] = le64_to_cpu(src->io_kb[i]);
+ dst->iobytes[i] = le64_to_cpu(src->iobytes[i]);
dst->agg[i] = le64_to_cpu(src->agg[i]);
}
dst->agg[i] = le64_to_cpu(src->agg[i]);
}
dst->min_run[i] = cpu_to_le64(src->min_run[i]);
dst->max_bw[i] = cpu_to_le64(src->max_bw[i]);
dst->min_bw[i] = cpu_to_le64(src->min_bw[i]);
dst->min_run[i] = cpu_to_le64(src->min_run[i]);
dst->max_bw[i] = cpu_to_le64(src->max_bw[i]);
dst->min_bw[i] = cpu_to_le64(src->min_bw[i]);
- dst->io_kb[i] = cpu_to_le64(src->io_kb[i]);
+ dst->iobytes[i] = cpu_to_le64(src->iobytes[i]);
dst->agg[i] = cpu_to_le64(src->agg[i]);
}
dst->agg[i] = cpu_to_le64(src->agg[i]);
}
if (!rs->max_run[i])
continue;
if (!rs->max_run[i])
continue;
- p1 = num2str(rs->io_kb[i], 6, rs->kb_base, i2p, 8);
- p2 = num2str(rs->agg[i], 6, rs->kb_base, i2p, rs->unit_base);
- p3 = num2str(rs->min_bw[i], 6, rs->kb_base, i2p, rs->unit_base);
- p4 = num2str(rs->max_bw[i], 6, rs->kb_base, i2p, rs->unit_base);
+ p1 = num2str(rs->iobytes[i], 6, 1, i2p, 8);
+ p2 = num2str(rs->agg[i], 6, 1, i2p, rs->unit_base);
+ p3 = num2str(rs->min_bw[i], 6, 1, i2p, rs->unit_base);
+ p4 = num2str(rs->max_bw[i], 6, 1, i2p, rs->unit_base);
log_buf(out, "%s: io=%s, aggrb=%s/s, minb=%s/s, maxb=%s/s,"
" mint=%llumsec, maxt=%llumsec\n",
log_buf(out, "%s: io=%s, aggrb=%s/s, minb=%s/s, maxb=%s/s,"
" mint=%llumsec, maxt=%llumsec\n",
if (dst->min_bw[i] && dst->min_bw[i] > src->min_bw[i])
dst->min_bw[i] = src->min_bw[i];
if (dst->min_bw[i] && dst->min_bw[i] > src->min_bw[i])
dst->min_bw[i] = src->min_bw[i];
- dst->io_kb[i] += src->io_kb[i];
+ dst->iobytes[i] += src->iobytes[i];
dst->agg[i] += src->agg[i];
}
dst->agg[i] += src->agg[i];
}
rs->max_run[j] = ts->runtime[j];
bw = 0;
rs->max_run[j] = ts->runtime[j];
bw = 0;
- if (ts->runtime[j]) {
- unsigned long runt = ts->runtime[j];
- unsigned long long kb;
-
- kb = ts->io_bytes[j] / rs->kb_base;
- bw = kb * 1000 / runt;
- }
+ if (ts->runtime[j])
+ bw = ts->io_bytes[j] * 1000 / ts->runtime[j];
if (bw < rs->min_bw[j])
rs->min_bw[j] = bw;
if (bw > rs->max_bw[j])
rs->max_bw[j] = bw;
if (bw < rs->min_bw[j])
rs->min_bw[j] = bw;
if (bw > rs->max_bw[j])
rs->max_bw[j] = bw;
- rs->io_kb[j] += ts->io_bytes[j] / rs->kb_base;
+ rs->iobytes[j] += ts->io_bytes[j];
for (ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) {
if (rs->max_run[ddir])
for (ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) {
if (rs->max_run[ddir])
- rs->agg[ddir] = (rs->io_kb[ddir] * 1000) /
+ rs->agg[ddir] = (rs->iobytes[ddir] * 1000) /
struct group_run_stats {
uint64_t max_run[DDIR_RWDIR_CNT], min_run[DDIR_RWDIR_CNT];
uint64_t max_bw[DDIR_RWDIR_CNT], min_bw[DDIR_RWDIR_CNT];
struct group_run_stats {
uint64_t max_run[DDIR_RWDIR_CNT], min_run[DDIR_RWDIR_CNT];
uint64_t max_bw[DDIR_RWDIR_CNT], min_bw[DDIR_RWDIR_CNT];
- uint64_t io_kb[DDIR_RWDIR_CNT];
+ uint64_t iobytes[DDIR_RWDIR_CNT];
uint64_t agg[DDIR_RWDIR_CNT];
uint32_t kb_base;
uint32_t unit_base;
uint64_t agg[DDIR_RWDIR_CNT];
uint32_t kb_base;
uint32_t unit_base;