From: Sean Hefty Date: Wed, 18 Jul 2012 19:02:46 +0000 (-0700) Subject: pop (CONFLICT) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=df55eed6806d0eee51d79b8676b645294efe159b;p=~shefty%2Flibrdmacm.git pop (CONFLICT) --- diff --git a/meta b/meta index 95a6163c..f71cc59c 100644 --- a/meta +++ b/meta @@ -1,12 +1,12 @@ Version: 1 -Previous: ae87c2fdf6dbda23ed2d2c7a2432e4a6caf2a3ae +Previous: f74bbedf54e7218a8b4f0e3891d61ba90b8790be Head: 7400fb8d400b2ff9c5ec772f23332e426167037d Applied: transpose: 84e0beee0d2d3c217cd9703b9e438d25856cacb6 fork: 0744fbe2b19f7924faf0dce72349307cc445577e rstream-fork: edf0409ab2138bdaf8283fa19ef0d2560c723478 + dbg: 7400fb8d400b2ff9c5ec772f23332e426167037d Unapplied: - dbg: 39a0eb24e8fda68380d463afc169ec5ab7a6c097 waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8 rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de Hidden: diff --git a/patches/dbg b/patches/dbg index 73b6c371..6bed9b3d 100644 --- a/patches/dbg +++ b/patches/dbg @@ -1,5 +1,5 @@ -Bottom: d6e06fd7ea63f4932d2e0c8583d782d079a4712b -Top: be7ceaa2c6c1c13647d43a493a75f32e316e92ba +Bottom: 1f4485c0b98410aa12e6f2832d81210b64ac5c0f +Top: 1f4485c0b98410aa12e6f2832d81210b64ac5c0f Author: Sean Hefty Date: 2012-07-18 09:01:43 -0700 @@ -8,102 +8,4 @@ debug fork --- -diff --git a/src/preload.c b/src/preload.c -index 2c07cc2..9ec75c3 100644 ---- a/src/preload.c -+++ b/src/preload.c -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -467,14 +468,17 @@ static int connect_fork(int socket, const struct sockaddr *addr, socklen_t addrl - uint32_t msg; - long flags; - -+ printf("connect_fork\n"); - fd = fd_getd(socket); - flags = real.fcntl(fd, F_GETFL); - real.fcntl(fd, F_SETFL, 0); - ret = real.connect(fd, addr, addrlen); -+ printf("connect_fork - real connect %d %s\n", ret, strerror(errno)); - if (ret) - return ret; - - ret = real.recv(fd, &msg, sizeof msg, MSG_PEEK); -+ printf("connect_fork - real recv %d msg %d\n", ret, msg); - if ((ret != sizeof msg) || msg) { - fd_store(socket, fd, fd_normal); - return 0; -@@ -482,6 +486,7 @@ static int connect_fork(int socket, const struct sockaddr *addr, socklen_t addrl - - real.fcntl(fd, F_SETFL, flags); - ret = transpose_socket(socket, fd_rsocket); -+ printf("connect_fork - transpose socket %d\n", ret); - if (ret < 0) - return ret; - -@@ -834,11 +839,15 @@ pid_t fork(void) - uint32_t msg; - - init_preload(); -+ printf("fork\n"); - pid = real.fork(); -+ printf("fork - pid %d fork_support %d last_accept %d \n", -+ pid, fork_support, last_accept); - if (pid || !fork_support || (last_accept < 0) || - (fd_get(last_accept, &sfd) != fd_fork)) - goto out; - -+ printf("fork - switching to rsocket\n"); - len = sizeof sin6; - ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len); - if (ret) -@@ -846,28 +855,36 @@ pid_t fork(void) - sin6.sin6_flowinfo = sin6.sin6_scope_id = 0; - memset(&sin6.sin6_addr, 0, sizeof sin6.sin6_addr); - -+ sem_unlink("/rsocket_fork"); - sem = sem_open("/rsocket_fork", O_CREAT | O_RDWR, - S_IRWXU | S_IRWXG, 1); -+ printf("fork - sem_open\n"); -+ printf("fork - sem value %d\n", sem_getvalue(sem, &ret)); - if (sem == SEM_FAILED) - goto out; - - lfd = rsocket(sin6.sin6_family, SOCK_STREAM, 0); -+ printf("fork - rsocket %d\n", lfd); - if (lfd < 0) - goto sclose; - - param = 1; - rsetsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, ¶m, sizeof param); - -+ printf("fork - waiting for semaphore\n"); - sem_wait(sem); - ret = rbind(lfd, (struct sockaddr *) &sin6, sizeof sin6); -+ printf("fork - rbind %d\n", ret); - if (ret) - goto lclose; - - ret = rlisten(lfd, 1); -+ printf("fork - rlisten %d\n", ret); - if (ret) - goto lclose; - - dfd = raccept(lfd, NULL, NULL); -+ printf("fork - raccept %d\n", dfd); - if (dfd < 0) - goto lclose; - -@@ -877,6 +894,7 @@ pid_t fork(void) - - msg = 0; - ret = real.write(sfd, &msg, sizeof msg); -+ printf("fork - real write %d\n", ret); - if (ret != sizeof msg) { - rclose(dfd); - goto lclose; +