+++ /dev/null
-Bottom: 758d450afd5a63013c7540fa171eea46bb810c1a
-Top: 1553275a3c6855e88d8b2c6f8cfb26579eb9307a
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-08-07 21:30:48 -0700
-
-support for debug prints
-
----
-
-diff --git a/src/preload.c b/src/preload.c
-index ec62e69..ac36642 100644
---- a/src/preload.c
-+++ b/src/preload.c
-@@ -50,6 +50,8 @@
- #include <netinet/tcp.h>
- #include <unistd.h>
- #include <semaphore.h>
-+#include <stdio.h>
-+#include <sys/syscall.h>
-
- #include <rdma/rdma_cma.h>
- #include <rdma/rdma_verbs.h>
-@@ -102,6 +104,8 @@ static int rq_size;
- static int sq_inline;
- static int fork_support;
-
-+static FILE *fout;
-+
- enum fd_type {
- fd_normal,
- fd_rsocket
-@@ -309,6 +313,7 @@ static void init_preload(void)
- rs.getsockopt = dlsym(RTLD_DEFAULT, "rgetsockopt");
- rs.fcntl = dlsym(RTLD_DEFAULT, "rfcntl");
-
-+ fout = fopen("rs-out.txt", "w+");
- getenv_options();
- init = 1;
- out:
-@@ -410,10 +415,12 @@ int socket(int domain, int type, int protocol)
- goto real;
-
- init_preload();
-+ fprintf(fout, "%d socket\n", (int)syscall(SYS_gettid));
- index = fd_open();
- if (index < 0)
- return index;
-
-+ fprintf(fout, "%d socket %d\n", (int)syscall(SYS_gettid), index); fflush(fout);
- recursive = 1;
- ret = rsocket(domain, type, protocol);
- recursive = 0;
-@@ -428,6 +435,9 @@ int socket(int domain, int type, int protocol)
- fd_store(index, ret, fd_rsocket, fd_ready);
- set_rsocket_options(ret);
- }
-+ fprintf(fout, "%d socket %d real fd %d type %d\n",
-+ (int)syscall(SYS_gettid), index, ret, fd_gett(index));
-+ fflush(fout);
- return index;
- }
- fd_close(index, &ret);
-@@ -438,6 +448,7 @@ real:
- int bind(int socket, const struct sockaddr *addr, socklen_t addrlen)
- {
- int fd;
-+ fprintf(fout, "%d bind %d\n", (int)syscall(SYS_gettid), socket); fflush(fout);
- return (fd_get(socket, &fd) == fd_rsocket) ?
- rbind(fd, addr, addrlen) : real.bind(fd, addr, addrlen);
- }
-@@ -554,7 +565,6 @@ static void fork_passive(int socket)
- uint32_t msg;
-
- sfd = fd_getd(socket);
--
- len = sizeof sin6;
- ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len);
- if (ret)
-@@ -586,11 +596,17 @@ static void fork_passive(int socket)
- ret = rlisten(lfd, 1);
- if (ret)
- goto lclose;
-+ fprintf(fout, "%d fork_passive %d, listening for fork\n", (int)syscall(SYS_gettid), socket);
-+ fflush(fout);
-
- msg = 0;
- len = real.write(sfd, &msg, sizeof msg);
- if (len != sizeof msg)
-+ {
-+ fprintf(fout, "%d fork_passive - %d write failed\n", (int)syscall(SYS_gettid), socket);
-+ fflush(fout);
- goto lclose;
-+ }
-
- dfd = raccept(lfd, NULL, NULL);
- if (dfd < 0) {
-@@ -874,18 +890,29 @@ int close(int socket)
- int ret;
-
- init_preload();
-+ fprintf(fout, "%d close %d real fd %d type %d\n",
-+ (int)syscall(SYS_gettid), socket, fd_getd(socket), fd_gett(socket));
-+ fflush(fout);
- fdi = idm_lookup(&idm, socket);
- if (!fdi)
- return real.close(socket);
-
- if (fdi->dupfd != -1) {
-+ fprintf(fout, "%d closing dupfd %d\n",
-+ (int)syscall(SYS_gettid), fdi->dupfd);
-+ fflush(fout);
- ret = close(fdi->dupfd);
- if (ret)
- return ret;
- }
-
- if (atomic_dec(&fdi->refcnt))
-+ {
-+ fprintf(fout, "%d close - still have ref %d\n",
-+ (int)syscall(SYS_gettid), atomic_get(&fdi->refcnt));
-+ fflush(fout);
- return 0;
-+ }
-
- idm_clear(&idm, socket);
- real.close(socket);
-@@ -978,6 +1005,8 @@ int dup2(int oldfd, int newfd)
- int ret;
-
- init_preload();
-+ fprintf(fout, "%d dup2 %d -> %d\n", (int)syscall(SYS_gettid), oldfd, newfd);
-+ fflush(fout);
- oldfdi = idm_lookup(&idm, oldfd);
- if (oldfdi && oldfdi->type == fd_fork)
- fork_passive(oldfd);
-@@ -1015,6 +1044,9 @@ int dup2(int oldfd, int newfd)
- atomic_init(&newfdi->refcnt);
- atomic_set(&newfdi->refcnt, 1);
- atomic_inc(&oldfdi->refcnt);
-+ fprintf(fout, "%d dup2 %d -> %d, real fd %d type %d\n",
-+ (int)syscall(SYS_gettid), oldfd, newfd, newfdi->fd, newfdi->type);
-+ fflush(fout);
- return newfd;
- }
-
-@@ -1040,8 +1072,10 @@ ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count)
-
- int __fxstat64(int ver, int socket, struct stat64 *buf)
- {
--// int fd, ret;
-+ int fd, ret;
-
-+ init_preload();
-+ fprintf(fout, "%s\n", __func__); fflush(fout);
- // if (fd_get(socket, &fd) == fd_rsocket) {
- // ret = real.fxstat64(ver, socket, buf);
- // if (!ret)
-@@ -1055,5 +1089,7 @@ int __fxstat64(int ver, int socket, struct stat64 *buf)
-
- int __fxstat(int ver, int socket, struct stat *buf)
- {
-+ init_preload();
-+ fprintf(fout, "%s\n", __func__); fflush(fout);
- return real.fxstat(ver, socket, buf);
- }