X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=client.c;h=4cbffb62967028465d9352b2c41b1796a52c9c56;hp=3248906756db77d9586fb2a71513943c9e57b0b6;hb=afc22c98609ee80a99fbed24231181bdab2bc659;hpb=39281024d26b5dbd4c70ce7620aeadc8933ac8c7 diff --git a/client.c b/client.c index 32489067..4cbffb62 100644 --- a/client.c +++ b/client.c @@ -59,6 +59,7 @@ struct group_run_stats client_gs; int sum_stat_clients; static int sum_stat_nr; +static struct buf_output allclients; static struct json_object *root = NULL; static struct json_object *job_opt_object = NULL; static struct json_array *clients_array = NULL; @@ -1000,6 +1001,7 @@ static void convert_ts(struct thread_stat *dst, struct thread_stat *src) dst->total_submit = le64_to_cpu(src->total_submit); dst->total_complete = le64_to_cpu(src->total_complete); + dst->nr_zone_resets = le64_to_cpu(src->nr_zone_resets); for (i = 0; i < DDIR_RWDIR_CNT; i++) { dst->io_bytes[i] = le64_to_cpu(src->io_bytes[i]); @@ -1038,6 +1040,9 @@ static void convert_ts(struct thread_stat *dst, struct thread_stat *src) dst->ss_bw_data[i] = le64_to_cpu(src->ss_bw_data[i]); } } + + dst->cachehit = le64_to_cpu(src->cachehit); + dst->cachemiss = le64_to_cpu(src->cachemiss); } static void convert_gs(struct group_run_stats *dst, struct group_run_stats *src) @@ -1099,7 +1104,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, NULL, &client->buf); + tsobj = show_thread_status(&client_ts, &client_gs, NULL, &allclients); if (tsobj) { json_object_add_client_info(tsobj, client); json_array_add_value_object(clients_array, tsobj); @@ -1594,6 +1599,11 @@ static struct cmd_iolog_pdu *convert_iolog_gz(struct fio_net_cmd *cmd, err = inflate(&stream, Z_NO_FLUSH); /* may be Z_OK, or Z_STREAM_END */ if (err < 0) { + /* + * Z_STREAM_ERROR and Z_BUF_ERROR can safely be + * ignored */ + if (err == Z_STREAM_ERROR || err == Z_BUF_ERROR) + break; log_err("fio: inflate error %d\n", err); free(ret); ret = NULL; @@ -2120,6 +2130,9 @@ int fio_handle_clients(struct client_ops *ops) } } + log_info_buf(allclients.buf, allclients.buflen); + buf_output_free(&allclients); + fio_client_json_fini(); free(pfds);