Change IO latency histogram to be in power-of-10
Power of 2 is just confusing for latencies, make the series
more natural by doing 1, 2, 4, 10, 20, 50, etc.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/HOWTO b/HOWTO
index ea98810..237b3ad 100644
--- a/HOWTO
+++ b/HOWTO
@@ -570,8 +570,8 @@
bw (KiB/s) : min= 0, max= 1196, per=51.00%, avg=664.02, stdev=681.68
cpu : usr=1.49%, sys=0.25%, ctx=7969
IO depths : 1=0.1%, 2=0.3%, 4=0.5%, 8=99.0%, 16=0.0%, 32=0.0%, >32=0.0%
- lat (msec): 2=1.6%, 4=0.0%, 8=3.2%, 16=12.8%, 32=38.4%, 64=24.8%, 128=15.2%
- lat (msec): 256=4.0%, 512=0.0%, 1024=0.0%, >=2048=0.0%
+ lat (msec): 2=1.6%, 4=0.0%, 10=3.2%, 20=12.8%, 50=38.4%, 100=24.8%,
+ lat (msec): 250=15.2%, 500=0.0%, 750=0.0%, 1000=0.0%, >=2048=0.0%
The client number is printed, along with the group id and error of that
thread. Below is the io statistics, here for writes. In the order listed,
@@ -605,8 +605,8 @@
time from when IO leaves fio and when it gets completed.
The numbers follow the same pattern as the IO depths,
meaning that 2=1.6% means that 1.6% of the IO completed
- within 2 msecs, 16=12.8% means that 12.8% of the IO
- took more than 8 msecs, but less than (or equal to) 16 msecs.
+ within 2 msecs, 20=12.8% means that 12.8% of the IO
+ took more than 10 msecs, but less than (or equal to) 20 msecs.
After each client has been listed, the group statistics are printed. They
will look like this:
diff --git a/io_u.c b/io_u.c
index b8f090b..23a64b0 100644
--- a/io_u.c
+++ b/io_u.c
@@ -289,23 +289,23 @@
switch (msec) {
default:
index++;
- case 1024 ... 2047:
+ case 1000 ... 1999:
index++;
- case 512 ... 1023:
+ case 750 ... 999:
index++;
- case 256 ... 511:
+ case 500 ... 749:
index++;
- case 128 ... 255:
+ case 250 ... 499:
index++;
- case 64 ... 127:
+ case 100 ... 249:
index++;
- case 32 ... 63:
+ case 50 ... 99:
index++;
- case 16 ... 31:
+ case 20 ... 49:
index++;
- case 8 ... 15:
+ case 10 ... 19:
index++;
- case 4 ... 7:
+ case 4 ... 9:
index++;
case 2 ... 3:
index++;
diff --git a/stat.c b/stat.c
index 337b45f..352ba48 100644
--- a/stat.c
+++ b/stat.c
@@ -489,8 +489,8 @@
io_u_lat[i] *= 100.0;
}
- fprintf(f_out, " lat (msec): 2=%3.1f%%, 4=%3.1f%%, 8=%3.1f%%, 16=%3.1f%%, 32=%3.1f%%, 64=%3.1f%%, 128=%3.1f%%\n", io_u_lat[0], io_u_lat[1], io_u_lat[2], io_u_lat[3], io_u_lat[4], io_u_lat[5], io_u_lat[6]);
- fprintf(f_out, " lat (msec): 256=%3.1f%%, 512=%3.1f%%, 1024=%3.1f%%, >=2048=%3.1f%%\n", io_u_lat[7], io_u_lat[8], io_u_lat[9], io_u_lat[10]);
+ fprintf(f_out, " lat (msec): 2=%3.1f%%, 4=%3.1f%%, 10=%3.1f%%, 20=%3.1f%%, 50=%3.1f%%, 100=%3.1f%%\n", io_u_lat[0], io_u_lat[1], io_u_lat[2], io_u_lat[3], io_u_lat[4], io_u_lat[5]);
+ fprintf(f_out, " lat (msec): 250=%3.1f%%, 500=%3.1f%%, 750=%3.1f%%, 1000=%3.1f%%, >=2000=%3.1f%%\n", io_u_lat[6], io_u_lat[7], io_u_lat[8], io_u_lat[9], io_u_lat[10]);
if (td->description)
fprintf(f_out, "%s\n", td->description);