Change IO latency histogram to be in power-of-10
authorJens Axboe <jens.axboe@oracle.com>
Wed, 21 Feb 2007 09:22:55 +0000 (10:22 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Wed, 21 Feb 2007 09:22:55 +0000 (10:22 +0100)
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>
HOWTO
io_u.c
stat.c

diff --git a/HOWTO b/HOWTO
index ea98810a211d97328232dfb593f84654cfa2f331..237b3ad23879efea84dbe46c69bd6754dc932f1d 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -570,8 +570,8 @@ Client1 (g=0): err= 0:
     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 @@ IO latencies=       The distribution of IO completion latencies. This is the
                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 b8f090bd536a5b3d2077e191684b18f062425c7b..23a64b046861bcf13e68bf316fd5111593468ca4 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -289,23 +289,23 @@ static void io_u_mark_latency(struct thread_data *td, unsigned long msec)
        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 337b45fd98d080b013a937af015343727499a80d..352ba48f4447cf77068b77bae7247ceec8dfa166 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -489,8 +489,8 @@ static void show_thread_status(struct thread_data *td,
                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);