]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
refresh
authorSean Hefty <sean.hefty@intel.com>
Mon, 23 Jul 2012 19:35:44 +0000 (12:35 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 23 Jul 2012 19:35:44 +0000 (12:35 -0700)
meta
patches/fork-xfer
patches/refresh-temp [deleted file]

diff --git a/meta b/meta
index 53f373b01c569f88be3f91b9ccb7c0e89b44c856..295c87a8943dc1224ea305e3c72ed42bd0684b91 100644 (file)
--- a/meta
+++ b/meta
@@ -1,14 +1,13 @@
 Version: 1
-Previous: bf8339067226b23200eba0ab89b906251779cf88
-Head: 77bd90142d4369fbf22b0f6cf70ab4ad26f2106c
+Previous: d0023ad5bd0966f7b4a43e49d53760e9981868e0
+Head: 5d3b93c68e98b8d321c63a44af06d052e552a0f6
 Applied:
   rm-ib-var: 63a728f303f78348ad9727c46ac3e271197dace4
   cma-rm-pd: 2ffda7f2991395570b9e776ff5ae256ca9684771
   transpose: 7856c0c353736cee5399eb2f706a6ac2913cc368
   fork: 1768d762d8a2100e5250234ddf080b722a5e582f
   rstream-fork: 2724e02d5b461f8c580249461271de0f7acefcab
-  fork-xfer: 90f61d3079894915082ed164f71d54b21aa5a289
-  refresh-temp: 77bd90142d4369fbf22b0f6cf70ab4ad26f2106c
+  fork-xfer: 5d3b93c68e98b8d321c63a44af06d052e552a0f6
 Unapplied:
   dbg: 3ec7b3dd2db8422fd840e3cee062c629e7b8f5b6
   waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
index d0aade090bd8041c30a7592014fc21f0b0327052..0ad30cf76b3c55ed0fda2eb2f227571adf6e2ee9 100644 (file)
@@ -1,5 +1,5 @@
 Bottom: e0b82367be775902f3588a79dd714486d21646b3
-Top:    64f842716d428bde944b1d88a9c26dc0d4dbd189
+Top:    701bfad47cfeefb22f51e3977fe3629945359257
 Author: Sean Hefty <sean.hefty@intel.com>
 Date:   2012-07-19 17:09:29 -0700
 
@@ -18,7 +18,7 @@ Signed-off-by: Sean Hefty <sean.hefty@intel.com>
 ---
 
 diff --git a/src/preload.c b/src/preload.c
-index f824af3..7086997 100644
+index f824af3..82a4125 100644
 --- a/src/preload.c
 +++ b/src/preload.c
 @@ -96,7 +96,6 @@ static int sq_size;
@@ -53,11 +53,11 @@ index f824af3..7086997 100644
  {
        int fd, ret;
        uint32_t msg;
-@@ -489,6 +493,71 @@ static int connect_fork(int socket, const struct sockaddr *addr, socklen_t addrl
+@@ -489,6 +493,95 @@ static int connect_fork(int socket, const struct sockaddr *addr, socklen_t addrl
        return rconnect(ret, addr, addrlen);
  }
  
-+static int fork_passive(int socket)
++static void fork_passive(int socket)
 +{
 +      struct sockaddr_in6 sin6;
 +      sem_t *sem;
@@ -65,6 +65,8 @@ index f824af3..7086997 100644
 +      socklen_t len;
 +      uint32_t msg;
 +
++      fd_get(socket, &sfd);
++
 +      len = sizeof sin6;
 +      ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len);
 +      if (ret)
@@ -74,12 +76,16 @@ index f824af3..7086997 100644
 +
 +      sem = sem_open("/rsocket_fork", O_CREAT | O_RDWR,
 +                     S_IRWXU | S_IRWXG, 1);
-+      if (sem == SEM_FAILED)
++      if (sem == SEM_FAILED) {
++              ret = -1;
 +              goto out;
++      }
 +
 +      lfd = rsocket(sin6.sin6_family, SOCK_STREAM, 0);
-+      if (lfd < 0)
++      if (lfd < 0) {
++              ret  = lfd;
 +              goto sclose;
++      }
 +
 +      param = 1;
 +      rsetsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &param, sizeof param);
@@ -99,8 +105,10 @@ index f824af3..7086997 100644
 +              goto lclose;
 +
 +      dfd = raccept(lfd, NULL, NULL);
-+      if (dfd < 0)
++      if (dfd < 0) {
++              ret  = dfd;
 +              goto lclose;
++      }
 +
 +      param = 1;
 +      rsetsockopt(dfd, IPPROTO_TCP, TCP_NODELAY, &param, sizeof param);
@@ -119,13 +127,29 @@ index f824af3..7086997 100644
 +out:
 +      if (ret)
 +              fd_store(socket, sfd, fd_normal);
-+      return ret;
++}
++
++static inline enum fd_type fd_fork_get(int index, int *fd)
++{
++      struct fd_info *fdi;
++
++      fdi = idm_lookup(&idm, index);
++      if (fdi) {
++              if (fdi->type == fd_fork)
++                      fork_passive(index);
++              *fd = fdi->fd;
++              return fdi->type;
++
++      } else {
++              *fd = index;
++              return fd_normal;
++      }
 +}
 +
  int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
  {
        struct sockaddr_in *sin;
-@@ -496,7 +565,7 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
+@@ -496,7 +589,7 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
  
        switch (fd_get(socket, &fd)) {
        case fd_fork:
@@ -134,7 +158,96 @@ index f824af3..7086997 100644
        case fd_rsocket:
                sin = (struct sockaddr_in *) addr;
                if (ntohs(sin->sin_port) > 1024) {
-@@ -812,85 +881,3 @@ int fcntl(int socket, int cmd, ... /* arg */)
+@@ -522,7 +615,7 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
+ ssize_t recv(int socket, void *buf, size_t len, int flags)
+ {
+       int fd;
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rrecv(fd, buf, len, flags) : real.recv(fd, buf, len, flags);
+ }
+@@ -530,7 +623,7 @@ ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
+                struct sockaddr *src_addr, socklen_t *addrlen)
+ {
+       int fd;
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rrecvfrom(fd, buf, len, flags, src_addr, addrlen) :
+               real.recvfrom(fd, buf, len, flags, src_addr, addrlen);
+ }
+@@ -538,7 +631,7 @@ ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
+ ssize_t recvmsg(int socket, struct msghdr *msg, int flags)
+ {
+       int fd;
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rrecvmsg(fd, msg, flags) : real.recvmsg(fd, msg, flags);
+ }
+@@ -546,7 +639,7 @@ ssize_t read(int socket, void *buf, size_t count)
+ {
+       int fd;
+       init_preload();
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rread(fd, buf, count) : real.read(fd, buf, count);
+ }
+@@ -554,14 +647,14 @@ ssize_t readv(int socket, const struct iovec *iov, int iovcnt)
+ {
+       int fd;
+       init_preload();
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rreadv(fd, iov, iovcnt) : real.readv(fd, iov, iovcnt);
+ }
+ ssize_t send(int socket, const void *buf, size_t len, int flags)
+ {
+       int fd;
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rsend(fd, buf, len, flags) : real.send(fd, buf, len, flags);
+ }
+@@ -569,7 +662,7 @@ ssize_t sendto(int socket, const void *buf, size_t len, int flags,
+               const struct sockaddr *dest_addr, socklen_t addrlen)
+ {
+       int fd;
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rsendto(fd, buf, len, flags, dest_addr, addrlen) :
+               real.sendto(fd, buf, len, flags, dest_addr, addrlen);
+ }
+@@ -577,7 +670,7 @@ ssize_t sendto(int socket, const void *buf, size_t len, int flags,
+ ssize_t sendmsg(int socket, const struct msghdr *msg, int flags)
+ {
+       int fd;
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rsendmsg(fd, msg, flags) : real.sendmsg(fd, msg, flags);
+ }
+@@ -585,7 +678,7 @@ ssize_t write(int socket, const void *buf, size_t count)
+ {
+       int fd;
+       init_preload();
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rwrite(fd, buf, count) : real.write(fd, buf, count);
+ }
+@@ -593,7 +686,7 @@ ssize_t writev(int socket, const struct iovec *iov, int iovcnt)
+ {
+       int fd;
+       init_preload();
+-      return (fd_get(socket, &fd) == fd_rsocket) ?
++      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
+               rwritev(fd, iov, iovcnt) : real.writev(fd, iov, iovcnt);
+ }
+@@ -812,85 +905,3 @@ int fcntl(int socket, int cmd, ... /* arg */)
        va_end(args);
        return ret;
  }
diff --git a/patches/refresh-temp b/patches/refresh-temp
deleted file mode 100644 (file)
index a2da919..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-Bottom: 64f842716d428bde944b1d88a9c26dc0d4dbd189
-Top:    701bfad47cfeefb22f51e3977fe3629945359257
-Author: Sean Hefty <sean.hefty@intel.com>
-Date:   2012-07-23 12:35:44 -0700
-
-Refresh of fork-xfer
-
----
-
-diff --git a/src/preload.c b/src/preload.c
-index 7086997..82a4125 100644
---- a/src/preload.c
-+++ b/src/preload.c
-@@ -493,7 +493,7 @@ static int fork_active(int socket, const struct sockaddr *addr, socklen_t addrle
-       return rconnect(ret, addr, addrlen);
- }
--static int fork_passive(int socket)
-+static void fork_passive(int socket)
- {
-       struct sockaddr_in6 sin6;
-       sem_t *sem;
-@@ -501,6 +501,8 @@ static int fork_passive(int socket)
-       socklen_t len;
-       uint32_t msg;
-+      fd_get(socket, &sfd);
-+
-       len = sizeof sin6;
-       ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len);
-       if (ret)
-@@ -510,12 +512,16 @@ static int fork_passive(int socket)
-       sem = sem_open("/rsocket_fork", O_CREAT | O_RDWR,
-                      S_IRWXU | S_IRWXG, 1);
--      if (sem == SEM_FAILED)
-+      if (sem == SEM_FAILED) {
-+              ret = -1;
-               goto out;
-+      }
-       lfd = rsocket(sin6.sin6_family, SOCK_STREAM, 0);
--      if (lfd < 0)
-+      if (lfd < 0) {
-+              ret  = lfd;
-               goto sclose;
-+      }
-       param = 1;
-       rsetsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &param, sizeof param);
-@@ -535,8 +541,10 @@ static int fork_passive(int socket)
-               goto lclose;
-       dfd = raccept(lfd, NULL, NULL);
--      if (dfd < 0)
-+      if (dfd < 0) {
-+              ret  = dfd;
-               goto lclose;
-+      }
-       param = 1;
-       rsetsockopt(dfd, IPPROTO_TCP, TCP_NODELAY, &param, sizeof param);
-@@ -555,7 +563,23 @@ sclose:
- out:
-       if (ret)
-               fd_store(socket, sfd, fd_normal);
--      return ret;
-+}
-+
-+static inline enum fd_type fd_fork_get(int index, int *fd)
-+{
-+      struct fd_info *fdi;
-+
-+      fdi = idm_lookup(&idm, index);
-+      if (fdi) {
-+              if (fdi->type == fd_fork)
-+                      fork_passive(index);
-+              *fd = fdi->fd;
-+              return fdi->type;
-+
-+      } else {
-+              *fd = index;
-+              return fd_normal;
-+      }
- }
- int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
-@@ -591,7 +615,7 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
- ssize_t recv(int socket, void *buf, size_t len, int flags)
- {
-       int fd;
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rrecv(fd, buf, len, flags) : real.recv(fd, buf, len, flags);
- }
-@@ -599,7 +623,7 @@ ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
-                struct sockaddr *src_addr, socklen_t *addrlen)
- {
-       int fd;
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rrecvfrom(fd, buf, len, flags, src_addr, addrlen) :
-               real.recvfrom(fd, buf, len, flags, src_addr, addrlen);
- }
-@@ -607,7 +631,7 @@ ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
- ssize_t recvmsg(int socket, struct msghdr *msg, int flags)
- {
-       int fd;
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rrecvmsg(fd, msg, flags) : real.recvmsg(fd, msg, flags);
- }
-@@ -615,7 +639,7 @@ ssize_t read(int socket, void *buf, size_t count)
- {
-       int fd;
-       init_preload();
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rread(fd, buf, count) : real.read(fd, buf, count);
- }
-@@ -623,14 +647,14 @@ ssize_t readv(int socket, const struct iovec *iov, int iovcnt)
- {
-       int fd;
-       init_preload();
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rreadv(fd, iov, iovcnt) : real.readv(fd, iov, iovcnt);
- }
- ssize_t send(int socket, const void *buf, size_t len, int flags)
- {
-       int fd;
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rsend(fd, buf, len, flags) : real.send(fd, buf, len, flags);
- }
-@@ -638,7 +662,7 @@ ssize_t sendto(int socket, const void *buf, size_t len, int flags,
-               const struct sockaddr *dest_addr, socklen_t addrlen)
- {
-       int fd;
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rsendto(fd, buf, len, flags, dest_addr, addrlen) :
-               real.sendto(fd, buf, len, flags, dest_addr, addrlen);
- }
-@@ -646,7 +670,7 @@ ssize_t sendto(int socket, const void *buf, size_t len, int flags,
- ssize_t sendmsg(int socket, const struct msghdr *msg, int flags)
- {
-       int fd;
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rsendmsg(fd, msg, flags) : real.sendmsg(fd, msg, flags);
- }
-@@ -654,7 +678,7 @@ ssize_t write(int socket, const void *buf, size_t count)
- {
-       int fd;
-       init_preload();
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rwrite(fd, buf, count) : real.write(fd, buf, count);
- }
-@@ -662,7 +686,7 @@ ssize_t writev(int socket, const struct iovec *iov, int iovcnt)
- {
-       int fd;
-       init_preload();
--      return (fd_get(socket, &fd) == fd_rsocket) ?
-+      return (fd_fork_get(socket, &fd) == fd_rsocket) ?
-               rwritev(fd, iov, iovcnt) : real.writev(fd, iov, iovcnt);
- }