projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix compile warnings on Windows
[fio.git]
/
engines
/
net.c
diff --git
a/engines/net.c
b/engines/net.c
index ff8e9e4a1cd4ab4552ee39620910e26d1d11c1ce..de7cdb541824bc35d8eb3cb97121f24bcce5bde3 100644
(file)
--- a/
engines/net.c
+++ b/
engines/net.c
@@
-7,6
+7,7
@@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <signal.h>
#include <errno.h>
#include <assert.h>
#include <netinet/in.h>
#include <errno.h>
#include <assert.h>
#include <netinet/in.h>
@@
-156,7
+157,7
@@
static int fio_netio_prep(struct thread_data *td, struct io_u *io_u)
return 0;
}
return 0;
}
-#ifdef
FIO_HAVE
_SPLICE
+#ifdef
CONFIG_LINUX
_SPLICE
static int splice_io_u(int fdin, int fdout, unsigned int len)
{
int bytes = 0;
static int splice_io_u(int fdin, int fdout, unsigned int len)
{
int bytes = 0;
@@
-351,7
+352,7
@@
static int fio_netio_recv(struct thread_data *td, struct io_u *io_u)
do {
if (o->proto == FIO_TYPE_UDP) {
do {
if (o->proto == FIO_TYPE_UDP) {
-
fio_
socklen_t len = sizeof(nd->addr);
+ socklen_t len = sizeof(nd->addr);
struct sockaddr *from = (struct sockaddr *) &nd->addr;
ret = recvfrom(io_u->file->fd, io_u->xfer_buf,
struct sockaddr *from = (struct sockaddr *) &nd->addr;
ret = recvfrom(io_u->file->fd, io_u->xfer_buf,
@@
-473,7
+474,7
@@
static int fio_netio_connect(struct thread_data *td, struct fio_file *f)
if (o->proto == FIO_TYPE_UDP)
return 0;
else if (o->proto == FIO_TYPE_TCP) {
if (o->proto == FIO_TYPE_UDP)
return 0;
else if (o->proto == FIO_TYPE_TCP) {
-
fio_
socklen_t len = sizeof(nd->addr);
+ socklen_t len = sizeof(nd->addr);
if (connect(f->fd, (struct sockaddr *) &nd->addr, len) < 0) {
td_verror(td, errno, "connect");
if (connect(f->fd, (struct sockaddr *) &nd->addr, len) < 0) {
td_verror(td, errno, "connect");
@@
-482,7
+483,7
@@
static int fio_netio_connect(struct thread_data *td, struct fio_file *f)
}
} else {
struct sockaddr_un *addr = &nd->addr_un;
}
} else {
struct sockaddr_un *addr = &nd->addr_un;
-
fio_
socklen_t len;
+ socklen_t len;
len = sizeof(addr->sun_family) + strlen(addr->sun_path) + 1;
len = sizeof(addr->sun_family) + strlen(addr->sun_path) + 1;
@@
-500,7
+501,7
@@
static int fio_netio_accept(struct thread_data *td, struct fio_file *f)
{
struct netio_data *nd = td->io_ops->data;
struct netio_options *o = td->eo;
{
struct netio_data *nd = td->io_ops->data;
struct netio_options *o = td->eo;
-
fio_
socklen_t socklen = sizeof(nd->addr);
+ socklen_t socklen = sizeof(nd->addr);
int state;
if (o->proto == FIO_TYPE_UDP) {
int state;
if (o->proto == FIO_TYPE_UDP) {
@@
-522,6
+523,7
@@
static int fio_netio_accept(struct thread_data *td, struct fio_file *f)
goto err;
}
goto err;
}
+ reset_all_stats(td);
td_set_runstate(td, state);
return 0;
err:
td_set_runstate(td, state);
return 0;
err:
@@
-539,7
+541,7
@@
static void fio_netio_udp_close(struct thread_data *td, struct fio_file *f)
msg.magic = htonl(FIO_LINK_OPEN_CLOSE_MAGIC);
msg.cmd = htonl(FIO_LINK_CLOSE);
msg.magic = htonl(FIO_LINK_OPEN_CLOSE_MAGIC);
msg.cmd = htonl(FIO_LINK_CLOSE);
- ret = sendto(f->fd, &msg, sizeof(msg), MSG_WAITALL, to,
+ ret = sendto(f->fd,
(void *)
&msg, sizeof(msg), MSG_WAITALL, to,
sizeof(nd->addr));
if (ret < 0)
td_verror(td, errno, "sendto udp link close");
sizeof(nd->addr));
if (ret < 0)
td_verror(td, errno, "sendto udp link close");
@@
-564,10
+566,10
@@
static int fio_netio_udp_recv_open(struct thread_data *td, struct fio_file *f)
struct netio_data *nd = td->io_ops->data;
struct udp_close_msg msg;
struct sockaddr *to = (struct sockaddr *) &nd->addr;
struct netio_data *nd = td->io_ops->data;
struct udp_close_msg msg;
struct sockaddr *to = (struct sockaddr *) &nd->addr;
-
fio_
socklen_t len = sizeof(nd->addr);
+ socklen_t len = sizeof(nd->addr);
int ret;
int ret;
- ret = recvfrom(f->fd, &msg, sizeof(msg), MSG_WAITALL, to, &len);
+ ret = recvfrom(f->fd,
(void *)
&msg, sizeof(msg), MSG_WAITALL, to, &len);
if (ret < 0) {
td_verror(td, errno, "sendto udp link open");
return ret;
if (ret < 0) {
td_verror(td, errno, "sendto udp link open");
return ret;
@@
-593,7
+595,7
@@
static int fio_netio_udp_send_open(struct thread_data *td, struct fio_file *f)
msg.magic = htonl(FIO_LINK_OPEN_CLOSE_MAGIC);
msg.cmd = htonl(FIO_LINK_OPEN);
msg.magic = htonl(FIO_LINK_OPEN_CLOSE_MAGIC);
msg.cmd = htonl(FIO_LINK_OPEN);
- ret = sendto(f->fd, &msg, sizeof(msg), MSG_WAITALL, to,
+ ret = sendto(f->fd,
(void *)
&msg, sizeof(msg), MSG_WAITALL, to,
sizeof(nd->addr));
if (ret < 0) {
td_verror(td, errno, "sendto udp link open");
sizeof(nd->addr));
if (ret < 0) {
td_verror(td, errno, "sendto udp link open");
@@
-741,7
+743,7
@@
static int fio_netio_setup_listen_inet(struct thread_data *td, short port)
}
opt = 1;
}
opt = 1;
- if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) {
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,
(void*)
&opt, sizeof(opt)) < 0) {
td_verror(td, errno, "setsockopt");
return 1;
}
td_verror(td, errno, "setsockopt");
return 1;
}
@@
-880,7
+882,12
@@
static int fio_netio_setup(struct thread_data *td)
return 0;
}
return 0;
}
-#ifdef FIO_HAVE_SPLICE
+static void fio_netio_terminate(struct thread_data *td)
+{
+ kill(td->pid, SIGUSR2);
+}
+
+#ifdef CONFIG_LINUX_SPLICE
static int fio_netio_setup_splice(struct thread_data *td)
{
struct netio_data *nd;
static int fio_netio_setup_splice(struct thread_data *td)
{
struct netio_data *nd;
@@
-908,11
+915,12
@@
static struct ioengine_ops ioengine_splice = {
.init = fio_netio_init,
.cleanup = fio_netio_cleanup,
.open_file = fio_netio_open_file,
.init = fio_netio_init,
.cleanup = fio_netio_cleanup,
.open_file = fio_netio_open_file,
- .close_file = generic_close_file,
+ .close_file = fio_netio_close_file,
+ .terminate = fio_netio_terminate,
.options = options,
.option_struct_size = sizeof(struct netio_options),
.flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR |
.options = options,
.option_struct_size = sizeof(struct netio_options),
.flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR |
- FIO_
SIGTERM | FIO_
PIPEIO,
+ FIO_PIPEIO,
};
#endif
};
#endif
@@
-926,10
+934,11
@@
static struct ioengine_ops ioengine_rw = {
.cleanup = fio_netio_cleanup,
.open_file = fio_netio_open_file,
.close_file = fio_netio_close_file,
.cleanup = fio_netio_cleanup,
.open_file = fio_netio_open_file,
.close_file = fio_netio_close_file,
+ .terminate = fio_netio_terminate,
.options = options,
.option_struct_size = sizeof(struct netio_options),
.flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR |
.options = options,
.option_struct_size = sizeof(struct netio_options),
.flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR |
- FIO_
SIGTERM | FIO_
PIPEIO,
+ FIO_PIPEIO,
};
static int str_hostname_cb(void *data, const char *input)
};
static int str_hostname_cb(void *data, const char *input)
@@
-945,7
+954,7
@@
static int str_hostname_cb(void *data, const char *input)
static void fio_init fio_netio_register(void)
{
register_ioengine(&ioengine_rw);
static void fio_init fio_netio_register(void)
{
register_ioengine(&ioengine_rw);
-#ifdef
FIO_HAVE
_SPLICE
+#ifdef
CONFIG_LINUX
_SPLICE
register_ioengine(&ioengine_splice);
#endif
}
register_ioengine(&ioengine_splice);
#endif
}
@@
-953,7
+962,7
@@
static void fio_init fio_netio_register(void)
static void fio_exit fio_netio_unregister(void)
{
unregister_ioengine(&ioengine_rw);
static void fio_exit fio_netio_unregister(void)
{
unregister_ioengine(&ioengine_rw);
-#ifdef
FIO_HAVE
_SPLICE
+#ifdef
CONFIG_LINUX
_SPLICE
unregister_ioengine(&ioengine_splice);
#endif
}
unregister_ioengine(&ioengine_splice);
#endif
}