X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=client.c;h=2cba8a034993a6aa55d351c5c3f8dfa7b5a8ef02;hb=7718121b8b06439f30f78cfb36b5a8d78dcb077f;hp=005ddf4ac47cdb6ded1dc5f443bc106589b28bfe;hpb=d2235e56057f54fc63ccbf789d4c54f9e99978af;p=fio.git diff --git a/client.c b/client.c index 005ddf4a..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; @@ -936,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); @@ -946,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++; @@ -956,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); @@ -968,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) @@ -1029,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)