X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=client.c;h=2cba8a034993a6aa55d351c5c3f8dfa7b5a8ef02;hp=110a01bd99564280245cd59ca7ff27759bf3e936;hb=17ecadc3fababaace961051765f140d3332d362d;hpb=0ff8ad2e50052293c74254bb52c95de8ab2b1d90 diff --git a/client.c b/client.c index 110a01bd..2cba8a03 100644 --- a/client.c +++ b/client.c @@ -117,7 +117,7 @@ static int read_data(int fd, void *data, size_t size) static void fio_client_json_init(void) { - if (output_format != FIO_OUTPUT_JSON) + if (!(output_format & FIO_OUTPUT_JSON)) return; root = json_create_object(); json_object_add_value_string(root, "fio version", fio_version_string); @@ -129,9 +129,9 @@ static void fio_client_json_init(void) static void fio_client_json_fini(void) { - if (output_format != FIO_OUTPUT_JSON) + if (!(output_format & FIO_OUTPUT_JSON)) return; - json_print_object(root); + json_print_object(root, NULL); log_info("\n"); json_free_object(root); root = NULL; @@ -534,11 +534,6 @@ static void sig_int(int sig) fio_clients_terminate(); } -static void sig_show_status(int sig) -{ - show_running_run_stats(); -} - static void client_signal_handler(void) { struct sigaction act; @@ -941,7 +936,7 @@ static void handle_ts(struct fio_client *client, struct fio_net_cmd *cmd) struct cmd_ts_pdu *p = (struct cmd_ts_pdu *) cmd->payload; struct json_object *tsobj; - tsobj = show_thread_status(&p->ts, &p->rs); + tsobj = show_thread_status(&p->ts, &p->rs, NULL); client->did_stat = 1; if (tsobj) { json_object_add_client_info(tsobj, client); @@ -951,7 +946,7 @@ static void handle_ts(struct fio_client *client, struct fio_net_cmd *cmd) if (sum_stat_clients <= 1) return; - sum_thread_stats(&client_ts, &p->ts, sum_stat_nr); + sum_thread_stats(&client_ts, &p->ts, sum_stat_nr == 1); sum_group_stats(&client_gs, &p->rs); client_ts.members++; @@ -961,7 +956,7 @@ static void handle_ts(struct fio_client *client, struct fio_net_cmd *cmd) if (++sum_stat_nr == sum_stat_clients) { strcpy(client_ts.name, "All clients"); - tsobj = show_thread_status(&client_ts, &client_gs); + tsobj = show_thread_status(&client_ts, &client_gs, NULL); if (tsobj) { json_object_add_client_info(tsobj, client); json_array_add_value_object(clients_array, tsobj); @@ -973,7 +968,7 @@ static void handle_gs(struct fio_client *client, struct fio_net_cmd *cmd) { struct group_run_stats *gs = (struct group_run_stats *) cmd->payload; - show_group_stats(gs); + show_group_stats(gs, NULL); } static void handle_text(struct fio_client *client, struct fio_net_cmd *cmd) @@ -1034,13 +1029,16 @@ static void handle_du(struct fio_client *client, struct fio_net_cmd *cmd) log_info("\nDisk stats (read/write):\n"); } - if (output_format == FIO_OUTPUT_JSON) { + if (output_format & FIO_OUTPUT_JSON) { struct json_object *duobj; json_array_add_disk_util(&du->dus, &du->agg, du_array); duobj = json_array_last_value_object(du_array); json_object_add_client_info(duobj, client); - } else - print_disk_util(&du->dus, &du->agg, output_format == FIO_OUTPUT_TERSE); + } + if (output_format & FIO_OUTPUT_TERSE) + print_disk_util(&du->dus, &du->agg, 1, NULL); + if (output_format & FIO_OUTPUT_NORMAL) + print_disk_util(&du->dus, &du->agg, 0, NULL); } static void convert_jobs_eta(struct jobs_eta *je) @@ -1497,9 +1495,15 @@ int fio_handle_client(struct fio_client *client) break; case FIO_NET_CMD_VTRIGGER: { struct all_io_list *pdu = (struct all_io_list *) cmd->payload; - char buf[64]; + char buf[128]; + int off = 0; + + if (aux_path) { + strcpy(buf, aux_path); + off = strlen(buf); + } - __verify_save_state(pdu, server_name(client, buf, sizeof(buf))); + __verify_save_state(pdu, server_name(client, &buf[off], sizeof(buf) - off)); exec_trigger(trigger_cmd); break; }