genfio: Splitting gen_template in 2 parts
[fio.git] / gfio.c
diff --git a/gfio.c b/gfio.c
index b9da70274ac0739d2bcc055a7c45d24bf36563de..65302e6075a01daad0b794417909e0e213b4f66a 100644 (file)
--- a/gfio.c
+++ b/gfio.c
@@ -85,8 +85,10 @@ static void setup_iops_graph(struct gfio_graphs *gg)
        graph_x_title(g, "Time (secs)");
        gg->read_iops = graph_add_label(g, "Read IOPS");
        gg->write_iops = graph_add_label(g, "Write IOPS");
-       graph_set_color(g, gg->read_iops, 0.13, 0.54, 0.13);
-       graph_set_color(g, gg->write_iops, 1.0, 0.0, 0.0);
+       gg->trim_iops = graph_add_label(g, "Trim IOPS");
+       graph_set_color(g, gg->read_iops, GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+       graph_set_color(g, gg->write_iops, GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+       graph_set_color(g, gg->trim_iops, GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
        line_graph_set_data_count_limit(g, gfio_graph_limit);
        graph_add_extra_space(g, 0.0, 0.0, 0.0, 0.0);
        graph_set_graph_all_zeroes(g, 0);
@@ -102,8 +104,10 @@ static void setup_bandwidth_graph(struct gfio_graphs *gg)
        graph_x_title(g, "Time (secs)");
        gg->read_bw = graph_add_label(g, "Read Bandwidth");
        gg->write_bw = graph_add_label(g, "Write Bandwidth");
-       graph_set_color(g, gg->read_bw, 0.13, 0.54, 0.13);
-       graph_set_color(g, gg->write_bw, 1.0, 0.0, 0.0);
+       gg->trim_bw = graph_add_label(g, "Trim Bandwidth");
+       graph_set_color(g, gg->read_bw, GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+       graph_set_color(g, gg->write_bw, GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+       graph_set_color(g, gg->trim_bw, GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
        graph_set_base_offset(g, 1);
        line_graph_set_data_count_limit(g, 100);
        graph_add_extra_space(g, 0.0, 0.0, 0.0, 0.0);
@@ -650,6 +654,12 @@ static void gfio_client_added(struct gui_entry *ge, struct fio_client *client)
        gc->o_list_nr++;
 }
 
+static void gfio_clear_graph_data(struct gfio_graphs *g)
+{
+       graph_clear_values(g->iops_graph);
+       graph_clear_values(g->bandwidth_graph);
+}
+
 static void connect_clicked(GtkWidget *widget, gpointer data)
 {
        struct gui_entry *ge = data;
@@ -690,6 +700,7 @@ static void connect_clicked(GtkWidget *widget, gpointer data)
                        if (!ge->ui->handler_running)
                                pthread_create(&ge->ui->t, NULL, job_thread, ge->ui);
                        gfio_set_state(ge, GE_STATE_CONNECTED);
+                       gfio_clear_graph_data(&ge->graphs);
                } else {
                        gfio_report_error(ge, "Failed to connect to %s: %s\n", ge->client->client->hostname, strerror(-ret));
                }
@@ -1381,10 +1392,12 @@ static GtkWidget *new_client_page(struct gui_entry *ge)
 
        probe_box = gtk_hbox_new(FALSE, 3);
        gtk_box_pack_start(GTK_BOX(probe_frame), probe_box, FALSE, FALSE, 3);
-       ge->eta.read_bw = new_info_entry_in_frame(probe_box, "Read BW");
-       ge->eta.read_iops = new_info_entry_in_frame(probe_box, "IOPS");
-       ge->eta.write_bw = new_info_entry_in_frame(probe_box, "Write BW");
-       ge->eta.write_iops = new_info_entry_in_frame(probe_box, "IOPS");
+       ge->eta.read_bw = new_info_entry_in_frame_rgb(probe_box, "Read BW", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+       ge->eta.read_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+       ge->eta.write_bw = new_info_entry_in_frame_rgb(probe_box, "Write BW", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+       ge->eta.write_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+       ge->eta.trim_bw = new_info_entry_in_frame_rgb(probe_box, "Trim BW", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
+       ge->eta.trim_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
 
        /*
         * Only add this if we have a commit rate
@@ -1467,10 +1480,12 @@ static GtkWidget *new_main_page(struct gui *ui)
        probe_box = gtk_hbox_new(FALSE, 3);
        gtk_box_pack_start(GTK_BOX(probe_frame), probe_box, FALSE, FALSE, 3);
        ui->eta.jobs = new_info_entry_in_frame(probe_box, "Running");
-       ui->eta.read_bw = new_info_entry_in_frame(probe_box, "Read BW");
-       ui->eta.read_iops = new_info_entry_in_frame(probe_box, "IOPS");
-       ui->eta.write_bw = new_info_entry_in_frame(probe_box, "Write BW");
-       ui->eta.write_iops = new_info_entry_in_frame(probe_box, "IOPS");
+       ui->eta.read_bw = new_info_entry_in_frame_rgb(probe_box, "Read BW", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+       ui->eta.read_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+       ui->eta.write_bw = new_info_entry_in_frame_rgb(probe_box, "Write BW", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+       ui->eta.write_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+       ui->eta.trim_bw = new_info_entry_in_frame_rgb(probe_box, "Trim BW", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
+       ui->eta.trim_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
 
        /*
         * Only add this if we have a commit rate
@@ -1662,15 +1677,18 @@ static void init_ui(int *argc, char **argv[], struct gui *ui)
         * Without it, the update that happens in gfio_update_thread_status
         * doesn't really happen in a timely fashion, you need expose events
         */
+#if !GTK_CHECK_VERSION(2, 24, 0)
        if (!g_thread_supported())
                g_thread_init(NULL);
+#endif
+
        gdk_threads_init();
 
        gtk_init(argc, argv);
        settings = gtk_settings_get_default();
        gtk_settings_set_long_property(settings, "gtk_tooltip_timeout", 10, "gfio setting");
        g_type_init();
-       gdk_color_parse("#ffffee", &gfio_color_lightyellow);
+       gdk_color_parse("#fffff4", &gfio_color_lightyellow);
        gdk_color_parse("white", &gfio_color_white);
 
        ui->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);