+static void show_lat(double *io_u_lat, int nr, const char **ranges,
+ const char *msg)
+{
+ int new_line = 1, i, line = 0;
+
+ for (i = 0; i < nr; i++) {
+ if (io_u_lat[i] <= 0.0)
+ continue;
+ if (new_line) {
+ if (line)
+ log_info("\n");
+ log_info(" lat (%s): ", msg);
+ new_line = 0;
+ line = 0;
+ }
+ if (line)
+ log_info(", ");
+ log_info("%s%3.2f%%", ranges[i], io_u_lat[i]);
+ line++;
+ if (line == 5)
+ new_line = 1;
+ }
+}
+
+static void show_lat_u(double *io_u_lat_u)
+{
+ const char *ranges[] = { "2=", "4=", "10=", "20=", "50=", "100=",
+ "250=", "500=", "750=", "1000=", };
+
+ show_lat(io_u_lat_u, FIO_IO_U_LAT_U_NR, ranges, "usec");
+}
+
+static void show_lat_m(double *io_u_lat_m)
+{
+ const char *ranges[] = { "2=", "4=", "10=", "20=", "50=", "100=",
+ "250=", "500=", "750=", "1000=", "2000=",
+ ">=2000=", };
+
+ show_lat(io_u_lat_m, FIO_IO_U_LAT_M_NR, ranges, "msec");
+}
+
+static void show_latencies(double *io_u_lat_u, double *io_u_lat_m)
+{
+ show_lat_u(io_u_lat_u);
+ log_info("\n");
+ show_lat_m(io_u_lat_m);
+ log_info("\n");
+}
+