X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=gfio.c;h=42d536e033a18ffb53b9063f9bf47e970aabbdd6;hp=d1cf346b0ede1bd80ac472999d645305a94e9cc8;hb=37659335ac616d7c13bf8bfbb76366424b50ea67;hpb=adbf6125ea51ff8e3a892240e3e7024f3c3df127 diff --git a/gfio.c b/gfio.c index d1cf346b..42d536e0 100644 --- a/gfio.c +++ b/gfio.c @@ -88,7 +88,7 @@ static void setup_iops_graph(struct gfio_graphs *gg) 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_IOPS_R, GFIO_IOPS_G, GFIO_IOPS_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); @@ -107,7 +107,7 @@ static void setup_bandwidth_graph(struct gfio_graphs *gg) 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_IOPS_R, GFIO_IOPS_G, GFIO_IOPS_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); @@ -444,12 +444,12 @@ static int send_job_file(struct gui_entry *ge) while (!flist_empty(&gc->o_list)) { struct gfio_client_options *gco; - gco = flist_entry(gc->o_list.next, struct gfio_client_options, list); + gco = flist_first_entry(&gc->o_list, struct gfio_client_options, list); flist_del(&gco->list); free(gco); } - ret = fio_client_send_ini(gc->client, ge->job_file); + ret = fio_client_send_ini(gc->client, ge->job_file, 0); if (!ret) return 0; @@ -654,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; @@ -694,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)); } @@ -1346,24 +1353,10 @@ static void combo_entry_destroy(GtkWidget *widget, gpointer data) multitext_free(&ge->eta.iodepth); } -static void fill_color_from_rgb(GdkColor *c, gfloat r, gfloat g, gfloat b) -{ - gint R, G, B; - gchar tmp[32]; - - memset(c, 0, sizeof(*c)); - R = r * 255; - G = g * 255; - B = b * 255; - sprintf(tmp, "#%02x%02x%02x", R, G, B); - gdk_color_parse(tmp, c); -} - static GtkWidget *new_client_page(struct gui_entry *ge) { GtkWidget *main_vbox, *probe, *probe_frame, *probe_box; GtkWidget *scrolled_window, *bottom_align, *top_align, *top_vbox; - GdkColor color; main_vbox = gtk_vbox_new(FALSE, 3); @@ -1399,24 +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.trim_bw = new_info_entry_in_frame(probe_box, "Trim BW"); - ge->eta.trim_iops = new_info_entry_in_frame(probe_box, "IOPS"); - - fill_color_from_rgb(&color, GFIO_READ_R, GFIO_READ_G, GFIO_READ_B); - gtk_widget_modify_text(ge->eta.read_bw, GTK_STATE_NORMAL, &color); - gtk_widget_modify_text(ge->eta.read_iops, GTK_STATE_NORMAL, &color); - - fill_color_from_rgb(&color, GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B); - gtk_widget_modify_text(ge->eta.write_bw, GTK_STATE_NORMAL, &color); - gtk_widget_modify_text(ge->eta.write_iops, GTK_STATE_NORMAL, &color); - - fill_color_from_rgb(&color, GFIO_IOPS_R, GFIO_IOPS_G, GFIO_IOPS_B); - gtk_widget_modify_text(ge->eta.trim_bw, GTK_STATE_NORMAL, &color); - gtk_widget_modify_text(ge->eta.trim_iops, GTK_STATE_NORMAL, &color); + 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 @@ -1499,13 +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.trim_bw = new_info_entry_in_frame(probe_box, "Trim BW"); - ui->eta.trim_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 @@ -1697,15 +1677,20 @@ 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"); +#if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init(); - gdk_color_parse("#ffffee", &gfio_color_lightyellow); +#endif + gdk_color_parse("#fffff4", &gfio_color_lightyellow); gdk_color_parse("white", &gfio_color_white); ui->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);