X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=server.c;h=76d662d4ce143e1745e0749bcc69732dd30cfb2a;hb=b76d85a4d2e61546b40135db141972eba4ecd981;hp=0469cea7221f063c26fcc0526cc6a2f8928ae873;hpb=b599759ba565e7f2f573af364e6da4fe6d556a90;p=fio.git diff --git a/server.c b/server.c index 0469cea7..76d662d4 100644 --- a/server.c +++ b/server.c @@ -616,7 +616,7 @@ static int fio_net_queue_quit(void) { dprint(FD_NET, "server: sending quit\n"); - return fio_net_queue_cmd(FIO_NET_CMD_QUIT, NULL, 0, NULL, SK_F_SIMPLE); + return fio_net_queue_cmd(FIO_NET_CMD_QUIT, NULL, 0, NULL, SK_F_SIMPLE | SK_F_INLINE); } int fio_net_send_quit(int sk) @@ -636,7 +636,7 @@ static int fio_net_send_ack(struct fio_net_cmd *cmd, int error, int signal) epdu.error = __cpu_to_le32(error); epdu.signal = __cpu_to_le32(signal); - return fio_net_queue_cmd(FIO_NET_CMD_STOP, &epdu, sizeof(epdu), &tag, SK_F_COPY); + return fio_net_queue_cmd(FIO_NET_CMD_STOP, &epdu, sizeof(epdu), &tag, SK_F_COPY | SK_F_INLINE); } static int fio_net_queue_stop(int error, int signal) @@ -856,7 +856,7 @@ static int handle_probe_cmd(struct fio_net_cmd *cmd) #ifdef CONFIG_BIG_ENDIAN probe.bigendian = 1; #endif - strncpy((char *) probe.fio_version, fio_version_string, sizeof(probe.fio_version)); + strncpy((char *) probe.fio_version, fio_version_string, sizeof(probe.fio_version) - 1); probe.os = FIO_OS; probe.arch = FIO_ARCH; @@ -951,7 +951,7 @@ static int handle_update_job_cmd(struct fio_net_cmd *cmd) return 0; } -static int handle_trigger_cmd(struct fio_net_cmd *cmd) +static int handle_trigger_cmd(struct fio_net_cmd *cmd, struct flist_head *job_list) { struct cmd_vtrigger_pdu *pdu = (struct cmd_vtrigger_pdu *) cmd->payload; char *buf = (char *) pdu->cmd; @@ -971,6 +971,7 @@ static int handle_trigger_cmd(struct fio_net_cmd *cmd) fio_net_queue_cmd(FIO_NET_CMD_VTRIGGER, rep, sz, NULL, SK_F_FREE | SK_F_INLINE); fio_terminate_threads(TERMINATE_ALL); + fio_server_check_jobs(job_list); exec_trigger(buf); return 0; } @@ -1014,7 +1015,7 @@ static int handle_command(struct sk_out *sk_out, struct flist_head *job_list, ret = handle_update_job_cmd(cmd); break; case FIO_NET_CMD_VTRIGGER: - ret = handle_trigger_cmd(cmd); + ret = handle_trigger_cmd(cmd, job_list); break; case FIO_NET_CMD_SENDFILE: { struct cmd_sendfile_reply *in; @@ -1538,6 +1539,8 @@ void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs) p.ts.latency_window = cpu_to_le64(ts->latency_window); p.ts.latency_percentile.u.i = cpu_to_le64(fio_double_to_uint64(ts->latency_percentile.u.f)); + p.ts.sig_figs = cpu_to_le32(ts->sig_figs); + p.ts.nr_block_infos = cpu_to_le64(ts->nr_block_infos); for (i = 0; i < p.ts.nr_block_infos; i++) p.ts.block_infos[i] = cpu_to_le32(ts->block_infos[i]); @@ -1553,7 +1556,7 @@ void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs) convert_gs(&p.rs, rs); dprint(FD_NET, "ts->ss_state = %d\n", ts->ss_state); - if (ts->ss_state & __FIO_SS_DATA) { + if (ts->ss_state & FIO_SS_DATA) { dprint(FD_NET, "server sending steadystate ring buffers\n"); ss_buf = malloc(sizeof(p) + 2*ts->ss_dur*sizeof(uint64_t));