Add iops rate to ETA display

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/fio.h b/fio.h
index 0a72819..771df35 100644
--- a/fio.h
+++ b/fio.h
@@ -560,4 +560,47 @@
 	return 0;
 }
 
+/*
+ * Cheesy number->string conversion, complete with carry rounding error.
+ */
+static inline char *num2str(unsigned long num, int maxlen, int base, int pow2)
+{
+	char postfix[] = { ' ', 'K', 'M', 'G', 'P', 'E' };
+	unsigned int thousand;
+	char *buf;
+	int i;
+
+	if (pow2)
+		thousand = 1024;
+	else
+		thousand = 1000;
+
+	buf = malloc(128);
+
+	for (i = 0; base > 1; i++)
+		base /= thousand;
+
+	do {
+		int len, carry = 0;
+
+		len = sprintf(buf, "%'lu", num);
+		if (len <= maxlen) {
+			if (i >= 1) {
+				buf[len] = postfix[i];
+				buf[len + 1] = '\0';
+			}
+			return buf;
+		}
+
+		if ((num % thousand) >= (thousand / 2))
+			carry = 1;
+
+		num /= thousand;
+		num += carry;
+		i++;
+	} while (i <= 5);
+
+	return buf;
+}
+
 #endif