projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
t/io_uring: add test support for pre mapping DMA buffers
[fio.git]
/
server.c
diff --git
a/server.c
b/server.c
index a5af5e74326b8b7385a35edd98665eabe93b83d2..90c52e01ac231f4972bbd94e91361d3fe61ad132 100644
(file)
--- a/
server.c
+++ b/
server.c
@@
-409,8
+409,9
@@
struct fio_net_cmd *fio_net_recv_cmd(int sk, bool wait)
if (cmdret->opcode == FIO_NET_CMD_TEXT) {
struct cmd_text_pdu *__pdu = (struct cmd_text_pdu *) cmdret->payload;
char *buf = (char *) __pdu->buf;
if (cmdret->opcode == FIO_NET_CMD_TEXT) {
struct cmd_text_pdu *__pdu = (struct cmd_text_pdu *) cmdret->payload;
char *buf = (char *) __pdu->buf;
+ int len = le32_to_cpu(__pdu->buf_len);
- buf[
__pdu->buf_
len] = '\0';
+ buf[len] = '\0';
} else if (cmdret->opcode == FIO_NET_CMD_JOB) {
struct cmd_job_pdu *__pdu = (struct cmd_job_pdu *) cmdret->payload;
char *buf = (char *) __pdu->buf;
} else if (cmdret->opcode == FIO_NET_CMD_JOB) {
struct cmd_job_pdu *__pdu = (struct cmd_job_pdu *) cmdret->payload;
char *buf = (char *) __pdu->buf;
@@
-950,7
+951,7
@@
static int handle_update_job_cmd(struct fio_net_cmd *cmd)
return 0;
}
return 0;
}
- td =
&threads[tnumber - 1]
;
+ td =
tnumber_to_td(tnumber)
;
convert_thread_options_to_cpu(&td->o, &pdu->top);
send_update_job_reply(cmd->tag, 0);
return 0;
convert_thread_options_to_cpu(&td->o, &pdu->top);
send_update_job_reply(cmd->tag, 0);
return 0;
@@
-1463,7
+1464,7
@@
static void convert_gs(struct group_run_stats *dst, struct group_run_stats *src)
void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs)
{
struct cmd_ts_pdu p;
void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs)
{
struct cmd_ts_pdu p;
- int i, j;
+ int i, j
, k
;
void *ss_buf;
uint64_t *ss_iops, *ss_bw;
void *ss_buf;
uint64_t *ss_iops, *ss_bw;
@@
-1499,6
+1500,7
@@
void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs)
p.ts.majf = cpu_to_le64(ts->majf);
p.ts.clat_percentiles = cpu_to_le32(ts->clat_percentiles);
p.ts.lat_percentiles = cpu_to_le32(ts->lat_percentiles);
p.ts.majf = cpu_to_le64(ts->majf);
p.ts.clat_percentiles = cpu_to_le32(ts->clat_percentiles);
p.ts.lat_percentiles = cpu_to_le32(ts->lat_percentiles);
+ p.ts.slat_percentiles = cpu_to_le32(ts->slat_percentiles);
p.ts.percentile_precision = cpu_to_le64(ts->percentile_precision);
for (i = 0; i < FIO_IO_U_LIST_MAX_LEN; i++) {
p.ts.percentile_precision = cpu_to_le64(ts->percentile_precision);
for (i = 0; i < FIO_IO_U_LIST_MAX_LEN; i++) {
@@
-1521,9
+1523,10
@@
void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs)
for (i = 0; i < FIO_IO_U_LAT_M_NR; i++)
p.ts.io_u_lat_m[i] = cpu_to_le64(ts->io_u_lat_m[i]);
for (i = 0; i < FIO_IO_U_LAT_M_NR; i++)
p.ts.io_u_lat_m[i] = cpu_to_le64(ts->io_u_lat_m[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_le64(ts->io_u_plat[i][j]);
+ for (i = 0; i < FIO_LAT_CNT; i++)
+ for (j = 0; j < DDIR_RWDIR_CNT; j++)
+ for (k = 0; k < FIO_IO_U_PLAT_NR; k++)
+ p.ts.io_u_plat[i][j][k] = cpu_to_le64(ts->io_u_plat[i][j][k]);
for (j = 0; j < FIO_IO_U_PLAT_NR; j++)
p.ts.io_u_sync_plat[j] = cpu_to_le64(ts->io_u_sync_plat[j]);
for (j = 0; j < FIO_IO_U_PLAT_NR; j++)
p.ts.io_u_sync_plat[j] = cpu_to_le64(ts->io_u_sync_plat[j]);
@@
-1577,10
+1580,10
@@
void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs)
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
for (j = 0; j < FIO_IO_U_PLAT_NR; j++) {
p.ts.io_u_plat_high_prio[i][j] = cpu_to_le64(ts->io_u_plat_high_prio[i][j]);
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
for (j = 0; j < FIO_IO_U_PLAT_NR; j++) {
p.ts.io_u_plat_high_prio[i][j] = cpu_to_le64(ts->io_u_plat_high_prio[i][j]);
- p.ts.io_u_plat_
prio[i][j] = cpu_to_le64(ts->io_u_plat
_prio[i][j]);
+ p.ts.io_u_plat_
low_prio[i][j] = cpu_to_le64(ts->io_u_plat_low
_prio[i][j]);
}
convert_io_stat(&p.ts.clat_high_prio_stat[i], &ts->clat_high_prio_stat[i]);
}
convert_io_stat(&p.ts.clat_high_prio_stat[i], &ts->clat_high_prio_stat[i]);
- convert_io_stat(&p.ts.clat_
prio_stat[i], &ts->clat
_prio_stat[i]);
+ convert_io_stat(&p.ts.clat_
low_prio_stat[i], &ts->clat_low
_prio_stat[i]);
}
convert_gs(&p.rs, rs);
}
convert_gs(&p.rs, rs);
@@
-1907,7
+1910,7
@@
static int fio_append_iolog_gz(struct sk_entry *first, struct io_log *log)
break;
}
flist_add_tail(&entry->list, &first->next);
break;
}
flist_add_tail(&entry->list, &first->next);
- }
while (ret != Z_STREAM_END);
+ }
ret = deflateEnd(&stream);
if (ret == Z_OK)
ret = deflateEnd(&stream);
if (ret == Z_OK)
@@
-2454,6
+2457,11
@@
static void set_sig_handlers(void)
};
sigaction(SIGINT, &act, NULL);
};
sigaction(SIGINT, &act, NULL);
+
+ /* Windows uses SIGBREAK as a quit signal from other applications */
+#ifdef WIN32
+ sigaction(SIGBREAK, &act, NULL);
+#endif
}
void fio_server_destroy_sk_key(void)
}
void fio_server_destroy_sk_key(void)
@@
-2562,6
+2570,7
@@
static int write_pid(pid_t pid, const char *pidfile)
*/
int fio_start_server(char *pidfile)
{
*/
int fio_start_server(char *pidfile)
{
+ FILE *file;
pid_t pid;
int ret;
pid_t pid;
int ret;
@@
-2594,14
+2603,28
@@
int fio_start_server(char *pidfile)
setsid();
openlog("fio", LOG_NDELAY|LOG_NOWAIT|LOG_PID, LOG_USER);
log_syslog = true;
setsid();
openlog("fio", LOG_NDELAY|LOG_NOWAIT|LOG_PID, LOG_USER);
log_syslog = true;
- close(STDIN_FILENO);
- close(STDOUT_FILENO);
- close(STDERR_FILENO);
+
+ file = freopen("/dev/null", "r", stdin);
+ if (!file)
+ perror("freopen");
+
+ file = freopen("/dev/null", "w", stdout);
+ if (!file)
+ perror("freopen");
+
+ file = freopen("/dev/null", "w", stderr);
+ if (!file)
+ perror("freopen");
+
f_out = NULL;
f_err = NULL;
ret = fio_server();
f_out = NULL;
f_err = NULL;
ret = fio_server();
+ fclose(stdin);
+ fclose(stdout);
+ fclose(stderr);
+
closelog();
unlink(pidfile);
free(pidfile);
closelog();
unlink(pidfile);
free(pidfile);