Add strong madvise() hint for cache pruning
[fio.git] / engines / net.c
index 93693f6d803233c7142e97305d8cecd32bc4ee90..c0a793e86cb8d7f38dfff1601ae218b2eb6d387a 100644 (file)
@@ -227,9 +227,11 @@ static int fio_netio_send(struct thread_data *td, struct io_u *io_u)
 
        do {
                if (nd->net_protocol == IPPROTO_UDP) {
+                       struct sockaddr *to = (struct sockaddr *) &nd->addr;
+
                        ret = sendto(io_u->file->fd, io_u->xfer_buf,
-                                       io_u->xfer_buflen, flags, &nd->addr,
-                                       sizeof(nd->addr));
+                                       io_u->xfer_buflen, flags, to,
+                                       sizeof(*to));
                } else {
                        /*
                         * if we are going to write more, set MSG_MORE
@@ -279,10 +281,10 @@ static int fio_netio_recv(struct thread_data *td, struct io_u *io_u)
        do {
                if (nd->net_protocol == IPPROTO_UDP) {
                        socklen_t len = sizeof(nd->addr);
+                       struct sockaddr *from = (struct sockaddr *) &nd->addr;
 
                        ret = recvfrom(io_u->file->fd, io_u->xfer_buf,
-                                       io_u->xfer_buflen, flags, &nd->addr,
-                                       &len);
+                                       io_u->xfer_buflen, flags, from, &len);
                        if (is_udp_close(io_u, ret)) {
                                td->done = 1;
                                return 0;
@@ -408,12 +410,13 @@ static void fio_netio_udp_close(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;
        int ret;
 
        msg.magic = htonl(FIO_LINK_CLOSE_MAGIC);
        msg.cmd = htonl(FIO_LINK_CLOSE);
 
-       ret = sendto(f->fd, &msg, sizeof(msg), MSG_WAITALL, &nd->addr,
+       ret = sendto(f->fd, &msg, sizeof(msg), MSG_WAITALL, to,
                        sizeof(nd->addr));
        if (ret < 0)
                td_verror(td, errno, "sendto udp link close");
@@ -630,7 +633,7 @@ static struct ioengine_ops ioengine_splice = {
        .open_file      = fio_netio_open_file,
        .close_file     = generic_close_file,
        .flags          = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR |
-                         FIO_SIGQUIT,
+                         FIO_SIGQUIT | FIO_PIPEIO,
 };
 #endif
 
@@ -645,7 +648,7 @@ static struct ioengine_ops ioengine_rw = {
        .open_file      = fio_netio_open_file,
        .close_file     = fio_netio_close_file,
        .flags          = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR |
-                         FIO_SIGQUIT,
+                         FIO_SIGQUIT | FIO_PIPEIO,
 };
 
 static void fio_init fio_netio_register(void)