This increases the token's recv kernel buffer size and each multicast's
fd send kernel buffer size.

Signed-off-by: Steven Dake <[email protected]>
---
 exec/totemudpu.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/exec/totemudpu.c b/exec/totemudpu.c
index dc30a12..a174c51 100644
--- a/exec/totemudpu.c
+++ b/exec/totemudpu.c
@@ -1316,6 +1316,8 @@ static int totemudpu_build_sockets_ip (
        struct sockaddr_storage sockaddr;
        int addrlen;
        int res;
+       unsigned int recvbuf_size;
+       unsigned int optlen = sizeof (recvbuf_size);
 
        /*
         * Setup unicast socket
@@ -1347,6 +1349,14 @@ static int totemudpu_build_sockets_ip (
                return (-1);
        }
 
+       /*
+        * the token_socket can receive many messages.  Allow a large number
+        * of receive messages on this socket
+        */
+       recvbuf_size = MCAST_SOCKET_BUFFER_SIZE;
+       setsockopt (instance->token_socket, SOL_SOCKET, SO_RCVBUF,
+               &recvbuf_size, optlen);
+
        return 0;
 }
 
@@ -1674,6 +1684,8 @@ int totemudpu_member_add (
        struct totemudpu_member *new_member;
        int res;
        char error_str[100];
+       unsigned int sendbuf_size;
+       unsigned int optlen = sizeof (sendbuf_size);
 
        new_member = malloc (sizeof (struct totemudpu_member));
        if (new_member == NULL) {
@@ -1697,6 +1709,14 @@ int totemudpu_member_add (
                        "Could not set non-blocking operation on token socket: 
%s\n", error_str);
                return (-1);
        }
+
+       /*
+        * These sockets are used to send multicast messages, so their buffers
+        * should be large
+        */
+       sendbuf_size = MCAST_SOCKET_BUFFER_SIZE;
+       setsockopt (new_member->fd, SOL_SOCKET, SO_SNDBUF,
+               &sendbuf_size, optlen);
        return (0);
 }
 
-- 
1.7.2.3

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to