gfio: update new options for gfio opt format

And fix gclient.c updates for num2str().

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/gclient.c b/gclient.c
index b8c681a..6f7865c 100644
--- a/gclient.c
+++ b/gclient.c
@@ -400,13 +400,13 @@
 			sprintf(output, "%3.1f%% done", perc);
 		}
 
-		rate_str[0] = num2str(je->rate[0], 5, 10, i2p);
-		rate_str[1] = num2str(je->rate[1], 5, 10, i2p);
-		rate_str[2] = num2str(je->rate[2], 5, 10, i2p);
+		rate_str[0] = num2str(je->rate[0], 5, 10, i2p, 0);
+		rate_str[1] = num2str(je->rate[1], 5, 10, i2p, 0);
+		rate_str[2] = num2str(je->rate[2], 5, 10, i2p, 0);
 
-		iops_str[0] = num2str(je->iops[0], 4, 1, 0);
-		iops_str[1] = num2str(je->iops[1], 4, 1, 0);
-		iops_str[2] = num2str(je->iops[2], 4, 1, 0);
+		iops_str[0] = num2str(je->iops[0], 4, 1, 0, 0);
+		iops_str[1] = num2str(je->iops[1], 4, 1, 0, 0);
+		iops_str[2] = num2str(je->iops[2], 4, 1, 0, 0);
 
 		gtk_entry_set_text(GTK_ENTRY(ge->eta.read_bw), rate_str[0]);
 		gtk_entry_set_text(GTK_ENTRY(ge->eta.read_iops), iops_str[0]);
@@ -494,13 +494,13 @@
 			sprintf(output, "%3.1f%% done", perc);
 		}
 
-		rate_str[0] = num2str(je->rate[0], 5, 10, i2p);
-		rate_str[1] = num2str(je->rate[1], 5, 10, i2p);
-		rate_str[2] = num2str(je->rate[2], 5, 10, i2p);
+		rate_str[0] = num2str(je->rate[0], 5, 10, i2p, 0);
+		rate_str[1] = num2str(je->rate[1], 5, 10, i2p, 0);
+		rate_str[2] = num2str(je->rate[2], 5, 10, i2p, 0);
 
-		iops_str[0] = num2str(je->iops[0], 4, 1, 0);
-		iops_str[1] = num2str(je->iops[1], 4, 1, 0);
-		iops_str[2] = num2str(je->iops[2], 4, 1, 0);
+		iops_str[0] = num2str(je->iops[0], 4, 1, 0, 0);
+		iops_str[1] = num2str(je->iops[1], 4, 1, 0, 0);
+		iops_str[2] = num2str(je->iops[2], 4, 1, 0, 0);
 
 		gtk_entry_set_text(GTK_ENTRY(ui->eta.read_bw), rate_str[0]);
 		gtk_entry_set_text(GTK_ENTRY(ui->eta.read_iops), iops_str[0]);
@@ -1020,8 +1020,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);
 
 	sprintf(tmp, "%s %s", name, base);
 	frame = gtk_frame_new(tmp);
@@ -1192,11 +1192,11 @@
 	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, ts->unit_base);
 
 	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);
 
 	box = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(mbox), box, TRUE, FALSE, 3);
diff --git a/options.c b/options.c
index b8ce5a7..8a8f24c 100644
--- a/options.c
+++ b/options.c
@@ -1173,24 +1173,8 @@
 		.prio	= -1, /* must come after "directory" */
 		.help	= "Override default $jobname.$jobnum.$filenum naming",
 		.def	= "$jobname.$jobnum.$filenum",
-	},
-	{
-		.name	= "kb_base",
-		.type	= FIO_OPT_INT,
-		.off1	= td_var_offset(kb_base),
-		.verify	= kb_base_verify,
-		.prio	= 1,
-		.def	= "1024",
-		.help	= "How many bytes per KB for reporting (1000 or 1024)",
-	},
-	{
-		.name	= "unit_base",
-		.type	= FIO_OPT_INT,
-		.off1	= td_var_offset(unit_base),
-		.verify	= unit_base_verify,
-		.prio	= 1,
-		.def	= "0",
-		.help	= "Bit multiple of result summary data (8 for byte, 1 for bit)",
+		.category = FIO_OPT_C_FILE,
+		.group	= FIO_OPT_G_FILENAME,
 	},
 	{
 		.name	= "lockfile",
@@ -3115,6 +3099,17 @@
 		.group	= FIO_OPT_G_INVALID,
 	},
 	{
+		.name	= "unit_base",
+		.type	= FIO_OPT_INT,
+		.off1	= td_var_offset(unit_base),
+		.verify	= unit_base_verify,
+		.prio	= 1,
+		.def	= "0",
+		.help	= "Bit multiple of result summary data (8 for byte, 1 for bit)",
+		.category = FIO_OPT_C_GENERAL,
+		.group	= FIO_OPT_G_INVALID,
+	},
+	{
 		.name	= "hugepage-size",
 		.lname	= "Hugepage size",
 		.type	= FIO_OPT_INT,