"ADD_JOB",
"CMD_RUN",
"CMD_IOLOG",
+ "CMD_UPDATE_JOB",
+ "CMD_LOAD_FILE",
};
const char *fio_server_op(unsigned int op)
fio_server_check_fork_items(conn_list);
}
+static int handle_load_file_cmd(struct fio_net_cmd *cmd)
+{
+ struct cmd_load_file_pdu *pdu = (struct cmd_load_file_pdu *) cmd->payload;
+ void *file_name = pdu->file;
+ struct cmd_start_pdu spdu;
+
+ dprint(FD_NET, "server: loading local file %s\n", (char *) file_name);
+
+ pdu->name_len = le16_to_cpu(pdu->name_len);
+ pdu->client_type = le16_to_cpu(pdu->client_type);
+
+ if (parse_jobs_ini(file_name, 0, 0, pdu->client_type)) {
+ fio_net_send_quit(server_fd);
+ return -1;
+ }
+
+ 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), NULL, NULL);
+ return 0;
+}
+
static int handle_run_cmd(struct flist_head *job_list, struct fio_net_cmd *cmd)
{
pid_t pid;
case FIO_NET_CMD_EXIT:
exit_backend = 1;
return -1;
+ case FIO_NET_CMD_LOAD_FILE:
+ ret = handle_load_file_cmd(cmd);
+ break;
case FIO_NET_CMD_JOB:
ret = handle_job_cmd(cmd);
break;
/*
* Encode to IEEE 754 for network transfer
*/
- dst->mean.u.i = __cpu_to_le64(fio_double_to_uint64(src->mean.u.f));
- dst->S.u.i = __cpu_to_le64(fio_double_to_uint64(src->S.u.f));
+ dst->mean.u.i = cpu_to_le64(fio_double_to_uint64(src->mean.u.f));
+ dst->S.u.i = cpu_to_le64(fio_double_to_uint64(src->S.u.f));
}
static void convert_gs(struct group_run_stats *dst, struct group_run_stats *src)
fio_fp64_t *src = &ts->percentile_list[i];
fio_fp64_t *dst = &p.ts.percentile_list[i];
- dst->u.i = __cpu_to_le64(fio_double_to_uint64(src->u.f));
+ dst->u.i = cpu_to_le64(fio_double_to_uint64(src->u.f));
}
for (i = 0; i < FIO_IO_U_MAP_NR; 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]);
+ p.ts.drop_io_u[i] = cpu_to_le64(ts->drop_io_u[i]);
}
p.ts.total_submit = cpu_to_le64(ts->total_submit);
p.ts.latency_depth = cpu_to_le32(ts->latency_depth);
p.ts.latency_target = cpu_to_le64(ts->latency_target);
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.latency_percentile.u.i = cpu_to_le64(fio_double_to_uint64(ts->latency_percentile.u.f));
convert_gs(&p.rs, rs);
dst->io_ticks = cpu_to_le32(src->io_ticks);
dst->time_in_queue = cpu_to_le32(src->time_in_queue);
dst->slavecount = cpu_to_le32(src->slavecount);
- dst->max_util.u.i = __cpu_to_le64(fio_double_to_uint64(src->max_util.u.f));
+ dst->max_util.u.i = cpu_to_le64(fio_double_to_uint64(src->max_util.u.f));
}
static void convert_dus(struct disk_util_stat *dst, struct disk_util_stat *src)