X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=server.c;h=d4676ddab40cf733007a5685700edda0b27ee67d;hp=33f69ef611a7ae2dd7eda4bd7e0e15c3284487a6;hb=4b91ee8fd12c72bd76ce9f5ff9116626b48566a0;hpb=905c78b90f92bab91555313f7b4bd83d18246139 diff --git a/server.c b/server.c index 33f69ef6..d4676dda 100644 --- a/server.c +++ b/server.c @@ -22,8 +22,6 @@ #include "crc/crc16.h" #include "lib/ieee754.h" -#include "fio_version.h" - int fio_net_port = 8765; int exit_backend = 0; @@ -312,7 +310,7 @@ int fio_net_send_simple_cmd(int sk, uint16_t opcode, uint64_t tag, fio_net_cmd_crc(&cmd->cmd); INIT_FLIST_HEAD(&cmd->list); - gettimeofday(&cmd->tv, NULL); + fio_gettime(&cmd->tv, NULL); cmd->saved_tag = tag; ret = fio_send_data(sk, &cmd->cmd, sizeof(cmd->cmd)); @@ -344,6 +342,7 @@ static int handle_job_cmd(struct fio_net_cmd *cmd) } spdu.jobs = cpu_to_le32(thread_number); + spdu.stat_outputs = cpu_to_le32(stat_number); fio_net_send_cmd(server_fd, FIO_NET_CMD_START, &spdu, sizeof(spdu), 0); ret = fio_backend(); @@ -404,12 +403,10 @@ static int handle_probe_cmd(struct fio_net_cmd *cmd) memset(&probe, 0, sizeof(probe)); gethostname((char *) probe.hostname, sizeof(probe.hostname)); -#ifdef FIO_BIG_ENDIAN +#ifdef CONFIG_BIG_ENDIAN probe.bigendian = 1; #endif - probe.fio_major = FIO_MAJOR; - probe.fio_minor = FIO_MINOR; - probe.fio_patch = FIO_PATCH; + strncpy((char *) probe.fio_version, fio_version_string, sizeof(probe.fio_version)); probe.os = FIO_OS; probe.arch = FIO_ARCH; @@ -448,13 +445,14 @@ static int handle_send_eta_cmd(struct fio_net_cmd *cmd) je->m_iops = cpu_to_le32(je->m_iops); je->t_iops = cpu_to_le32(je->t_iops); - for (i = 0; i < 2; i++) { + for (i = 0; i < DDIR_RWDIR_CNT; i++) { je->rate[i] = cpu_to_le32(je->rate[i]); je->iops[i] = cpu_to_le32(je->iops[i]); } je->elapsed_sec = cpu_to_le64(je->elapsed_sec); je->eta_sec = cpu_to_le64(je->eta_sec); + je->is_pow2 = cpu_to_le32(je->is_pow2); fio_net_send_cmd(server_fd, FIO_NET_CMD_ETA, je, size, cmd->tag); free(je); @@ -465,8 +463,9 @@ static int handle_command(struct fio_net_cmd *cmd) { int ret; - dprint(FD_NET, "server: got op [%s], pdu=%u, tag=%lx\n", - fio_server_op(cmd->opcode), cmd->pdu_len, cmd->tag); + dprint(FD_NET, "server: got op [%s], pdu=%u, tag=%llx\n", + fio_server_op(cmd->opcode), cmd->pdu_len, + (unsigned long long) cmd->tag); switch (cmd->opcode) { case FIO_NET_CMD_QUIT: @@ -563,7 +562,7 @@ void fio_server_idle_loop(void) static int accept_loop(int listen_sk) { struct sockaddr_in addr; - fio_socklen_t len = sizeof(addr); + socklen_t len = sizeof(addr); struct pollfd pfd; int ret, sk, flags, exitval = 0; @@ -639,7 +638,7 @@ static void convert_gs(struct group_run_stats *dst, struct group_run_stats *src) { int i; - for (i = 0; i < 2; i++) { + for (i = 0; i < DDIR_RWDIR_CNT; i++) { dst->max_run[i] = cpu_to_le64(src->max_run[i]); dst->min_run[i] = cpu_to_le64(src->min_run[i]); dst->max_bw[i] = cpu_to_le64(src->max_bw[i]); @@ -650,6 +649,7 @@ static void convert_gs(struct group_run_stats *dst, struct group_run_stats *src) dst->kb_base = cpu_to_le32(src->kb_base); dst->groupid = cpu_to_le32(src->groupid); + dst->unified_rw_rep = cpu_to_le32(src->unified_rw_rep); } /* @@ -671,10 +671,12 @@ void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs) p.ts.error = cpu_to_le32(ts->error); p.ts.groupid = cpu_to_le32(ts->groupid); + p.ts.unified_rw_rep = cpu_to_le32(ts->unified_rw_rep); p.ts.pid = cpu_to_le32(ts->pid); p.ts.members = cpu_to_le32(ts->members); + p.ts.unified_rw_rep = cpu_to_le32(ts->unified_rw_rep); - for (i = 0; i < 2; i++) { + for (i = 0; i < DDIR_RWDIR_CNT; i++) { convert_io_stat(&p.ts.clat_stat[i], &ts->clat_stat[i]); convert_io_stat(&p.ts.slat_stat[i], &ts->slat_stat[i]); convert_io_stat(&p.ts.lat_stat[i], &ts->lat_stat[i]); @@ -706,11 +708,11 @@ void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs) p.ts.io_u_lat_m[i] = cpu_to_le32(ts->io_u_lat_m[i]); } - for (i = 0; i < 2; i++) + for (i = 0; i < DDIR_RWDIR_CNT; i++) for (j = 0; j < FIO_IO_U_PLAT_NR; j++) p.ts.io_u_plat[i][j] = cpu_to_le32(ts->io_u_plat[i][j]); - for (i = 0; i < 3; i++) { + for (i = 0; i < DDIR_RWDIR_CNT; i++) { p.ts.total_io_u[i] = cpu_to_le64(ts->total_io_u[i]); p.ts.short_io_u[i] = cpu_to_le64(ts->short_io_u[i]); } @@ -718,7 +720,7 @@ void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs) p.ts.total_submit = cpu_to_le64(ts->total_submit); p.ts.total_complete = cpu_to_le64(ts->total_complete); - for (i = 0; i < 2; i++) { + for (i = 0; i < DDIR_RWDIR_CNT; i++) { p.ts.io_bytes[i] = cpu_to_le64(ts->io_bytes[i]); p.ts.runtime[i] = cpu_to_le64(ts->runtime[i]); } @@ -810,6 +812,7 @@ int fio_server_log(const char *format, ...) va_start(args, format); len = vsnprintf(buffer, sizeof(buffer), format, args); va_end(args); + len = min(len, sizeof(buffer) - 1); return fio_server_text_output(buffer, len); } @@ -817,7 +820,7 @@ int fio_server_log(const char *format, ...) static int fio_init_server_ip(void) { struct sockaddr *addr; - fio_socklen_t socklen; + socklen_t socklen; int sk, opt; if (use_ipv6) @@ -831,7 +834,7 @@ static int fio_init_server_ip(void) } opt = 1; - if (setsockopt(sk, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) { + if (setsockopt(sk, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt)) < 0) { log_err("fio: setsockopt: %s\n", strerror(errno)); close(sk); return -1; @@ -866,7 +869,7 @@ static int fio_init_server_ip(void) static int fio_init_server_sock(void) { struct sockaddr_un addr; - fio_socklen_t len; + socklen_t len; mode_t mode; int sk;