projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
filesetup: ensure to setup random generator properly
[fio.git]
/
client.c
diff --git
a/client.c
b/client.c
index 3248906756db77d9586fb2a71513943c9e57b0b6..e0047af06a3e97f6bdd57caeb4b3ebbd823956cd 100644
(file)
--- 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;
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;
static struct json_object *root = NULL;
static struct json_object *job_opt_object = NULL;
static struct json_array *clients_array = NULL;
@@
-519,7
+520,7
@@
static void probe_client(struct fio_client *client)
sname = server_name(client, buf, sizeof(buf));
memset(pdu.server, 0, sizeof(pdu.server));
sname = server_name(client, buf, sizeof(buf));
memset(pdu.server, 0, sizeof(pdu.server));
- s
trncpy((char *) pdu.server, sname, sizeof(pdu.server) - 1
);
+ s
nprintf((char *) pdu.server, sizeof(pdu.server), "%s", sname
);
fio_net_send_cmd(client->fd, FIO_NET_CMD_PROBE, &pdu, sizeof(pdu), &tag, &client->cmd_list);
}
fio_net_send_cmd(client->fd, FIO_NET_CMD_PROBE, &pdu, sizeof(pdu), &tag, &client->cmd_list);
}
@@
-573,7
+574,8
@@
static int fio_client_connect_sock(struct fio_client *client)
memset(addr, 0, sizeof(*addr));
addr->sun_family = AF_UNIX;
memset(addr, 0, sizeof(*addr));
addr->sun_family = AF_UNIX;
- strncpy(addr->sun_path, client->hostname, sizeof(addr->sun_path) - 1);
+ snprintf(addr->sun_path, sizeof(addr->sun_path), "%s",
+ client->hostname);
fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (fd < 0) {
fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (fd < 0) {
@@
-1000,6
+1002,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->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]);
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
dst->io_bytes[i] = le64_to_cpu(src->io_bytes[i]);
@@
-1038,6
+1041,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->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)
}
static void convert_gs(struct group_run_stats *dst, struct group_run_stats *src)
@@
-1099,7
+1105,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");
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);
if (tsobj) {
json_object_add_client_info(tsobj, client);
json_array_add_value_object(clients_array, tsobj);
@@
-1214,12
+1220,15
@@
static void handle_du(struct fio_client *client, struct fio_net_cmd *cmd)
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);
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 if (output_format & FIO_OUTPUT_TERSE)
- print_disk_util(&du->dus, &du->agg, 1, &client->buf);
- else if (output_format & FIO_OUTPUT_NORMAL) {
+ }
+ if (output_format & FIO_OUTPUT_NORMAL) {
__log_buf(&client->buf, "\nDisk stats (read/write):\n");
print_disk_util(&du->dus, &du->agg, 0, &client->buf);
}
__log_buf(&client->buf, "\nDisk stats (read/write):\n");
print_disk_util(&du->dus, &du->agg, 0, &client->buf);
}
+ if (output_format & FIO_OUTPUT_TERSE && terse_version >= 3) {
+ print_disk_util(&du->dus, &du->agg, 1, &client->buf);
+ __log_buf(&client->buf, "\n");
+ }
}
static void convert_jobs_eta(struct jobs_eta *je)
}
static void convert_jobs_eta(struct jobs_eta *je)
@@
-1594,6
+1603,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) {
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;
log_err("fio: inflate error %d\n", err);
free(ret);
ret = NULL;
@@
-2120,6
+2134,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);
fio_client_json_fini();
free(pfds);