num2str: add arguments to represent values in terms of bytes/bits

This allows for representing I/O rates in terms of e.g. megabits (Mb) versus
megabytes (MB).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/stat.c b/stat.c
index 38c5d02..041efeb 100644
--- a/stat.c
+++ b/stat.c
@@ -276,12 +276,12 @@
 		if (!rs->max_run[i])
 			continue;
 
-		p1 = num2str(rs->io_kb[i], 6, rs->kb_base, i2p);
-		p2 = num2str(rs->agg[i], 6, rs->kb_base, i2p);
-		p3 = num2str(rs->min_bw[i], 6, rs->kb_base, i2p);
-		p4 = num2str(rs->max_bw[i], 6, rs->kb_base, i2p);
+		p1 = num2str(rs->io_kb[i], 6, rs->kb_base, i2p, 8);
+		p2 = num2str(rs->agg[i], 6, rs->kb_base, i2p, 8);
+		p3 = num2str(rs->min_bw[i], 6, rs->kb_base, i2p, 8);
+		p4 = num2str(rs->max_bw[i], 6, rs->kb_base, i2p, 8);
 
-		log_info("%s: io=%sB, aggrb=%sB/s, minb=%sB/s, maxb=%sB/s,"
+		log_info("%s: io=%s, aggrb=%s/s, minb=%s/s, maxb=%s/s,"
 			 " mint=%llumsec, maxt=%llumsec\n",
 				rs->unified_rw_rep ? "  MIXED" : ddir_str[i],
 				p1, p2, p3, p4, rs->min_run[i], rs->max_run[i]);
@@ -379,13 +379,13 @@
 	runt = ts->runtime[ddir];
 
 	bw = (1000 * ts->io_bytes[ddir]) / runt;
-	io_p = num2str(ts->io_bytes[ddir], 6, 1, i2p);
-	bw_p = num2str(bw, 6, 1, i2p);
+	io_p = num2str(ts->io_bytes[ddir], 6, 1, i2p, 8);
+	bw_p = num2str(bw, 6, 1, i2p, 8);
 
 	iops = (1000 * (uint64_t)ts->total_io_u[ddir]) / runt;
-	iops_p = num2str(iops, 6, 1, 0);
+	iops_p = num2str(iops, 6, 1, 0, 0);
 
-	log_info("  %s: io=%sB, bw=%sB/s, iops=%s, runt=%6llumsec\n",
+	log_info("  %s: io=%s, bw=%s/s, iops=%s, runt=%6llumsec\n",
 				rs->unified_rw_rep ? "mixed" : ddir_str[ddir],
 				io_p, bw_p, iops_p, ts->runtime[ddir]);
 
@@ -400,8 +400,8 @@
 		if (!usec_to_msec(&min, &max, &mean, &dev))
 			base = "(msec)";
 
-		minp = num2str(min, 6, 1, 0);
-		maxp = num2str(max, 6, 1, 0);
+		minp = num2str(min, 6, 1, 0, 0);
+		maxp = num2str(max, 6, 1, 0, 0);
 
 		log_info("    slat %s: min=%s, max=%s, avg=%5.02f,"
 			 " stdev=%5.02f\n", base, minp, maxp, mean, dev);
@@ -416,8 +416,8 @@
 		if (!usec_to_msec(&min, &max, &mean, &dev))
 			base = "(msec)";
 
-		minp = num2str(min, 6, 1, 0);
-		maxp = num2str(max, 6, 1, 0);
+		minp = num2str(min, 6, 1, 0, 0);
+		maxp = num2str(max, 6, 1, 0, 0);
 
 		log_info("    clat %s: min=%s, max=%s, avg=%5.02f,"
 			 " stdev=%5.02f\n", base, minp, maxp, mean, dev);
@@ -432,8 +432,8 @@
 		if (!usec_to_msec(&min, &max, &mean, &dev))
 			base = "(msec)";
 
-		minp = num2str(min, 6, 1, 0);
-		maxp = num2str(max, 6, 1, 0);
+		minp = num2str(min, 6, 1, 0, 0);
+		maxp = num2str(max, 6, 1, 0, 0);
 
 		log_info("     lat %s: min=%s, max=%s, avg=%5.02f,"
 			 " stdev=%5.02f\n", base, minp, maxp, mean, dev);