From: Sean Hefty Date: Wed, 18 Jul 2012 16:01:43 +0000 (-0700) Subject: debug fork X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=a2437503c235e8aa5f5713e75b3518ab2edd9f49;p=~shefty%2Flibrdmacm.git debug fork --- diff --git a/examples/rstream.c b/examples/rstream.c index befb7c66..545328bf 100644 --- a/examples/rstream.c +++ b/examples/rstream.c @@ -182,6 +182,7 @@ static void show_perf(void) static int size_to_count(int size) { + return 100; if (size >= 1000000) return 100; else if (size >= 100000) diff --git a/src/cma.c b/src/cma.c index 5280620e..54b804e1 100755 --- a/src/cma.c +++ b/src/cma.c @@ -48,6 +48,7 @@ #include #include #include +#include #include "cma.h" #include @@ -141,6 +142,7 @@ static void ucma_cleanup(void) free(cma_dev_array); cma_dev_cnt = 0; } + printf("ucma_cleanup\n"); } static int check_abi_version(void) @@ -214,6 +216,7 @@ int ucma_init(void) if (cma_dev_cnt) return 0; + printf("ucma_init\n"); pthread_mutex_lock(&mut); if (cma_dev_cnt) { pthread_mutex_unlock(&mut); diff --git a/src/preload.c b/src/preload.c index 52eaf1a5..9b205f99 100644 --- a/src/preload.c +++ b/src/preload.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -382,6 +383,7 @@ int socket(int domain, int type, int protocol) if (index < 0) return index; + printf("socket\n"); recursive = 1; ret = rsocket(domain, type, protocol); recursive = 0; @@ -396,6 +398,7 @@ int socket(int domain, int type, int protocol) fd_store(index, ret, fd_rsocket); set_rsocket_options(ret); } + printf("socket - %d\n", index); return index; } fd_close(index, &ret); @@ -413,6 +416,7 @@ int bind(int socket, const struct sockaddr *addr, socklen_t addrlen) int listen(int socket, int backlog) { int fd; + printf("listen %d\n", socket); return (fd_get(socket, &fd) == fd_rsocket) ? rlisten(fd, backlog) : real.listen(fd, backlog); } @@ -455,14 +459,17 @@ static int fork_active(int socket, const struct sockaddr *addr, socklen_t addrle 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; @@ -470,10 +477,12 @@ static int fork_active(int socket, const struct sockaddr *addr, socklen_t addrle 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; real.close(fd); + printf("connect_fork - connecting rsocket"); return rconnect(ret, addr, addrlen); } @@ -570,6 +579,7 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen) { int fd, ret; + printf("conect %d\n", socket); switch (fd_get(socket, &fd)) { case fd_fork: return fork_active(socket, addr, addrlen); diff --git a/src/rsocket.c b/src/rsocket.c index ed125b3b..1d293f75 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -361,7 +361,9 @@ static int rs_init_bufs(struct rsocket *rs) if (!rs->sbuf) return -1; + printf("rs init bufs cm_id %p pd %p\n", rs->cm_id, rs->cm_id->pd); rs->smr = rdma_reg_msgs(rs->cm_id, rs->sbuf, rs->sbuf_size); + printf("rs init bufs - after reg %p\n", rs->smr); if (!rs->smr) return -1; @@ -425,10 +427,12 @@ static int rs_create_ep(struct rsocket *rs) rs_set_qp_size(rs); ret = rs_init_bufs(rs); + printf("rs create ep init bufs %d\n", ret); if (ret) return ret; ret = rs_create_cq(rs); + printf("rs create ep - create cq %d\n", ret); if (ret) return ret; @@ -445,6 +449,7 @@ static int rs_create_ep(struct rsocket *rs) qp_attr.cap.max_inline_data = rs->sq_inline; ret = rdma_create_qp(rs->cm_id, NULL, &qp_attr); + printf("rs create ep - create qp %d\n", ret); if (ret) return ret; @@ -602,16 +607,19 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) struct rs_conn_data *creq, cresp; int ret; + printf("raccept %d\n", socket); rs = idm_at(&idm, socket); new_rs = rs_alloc(rs); if (!new_rs) return ERR(ENOMEM); ret = rdma_get_request(rs->cm_id, &new_rs->cm_id); + printf("raccept get request %d\n", ret); if (ret) goto err; ret = rs_insert(new_rs); + printf("raccept insert %d\n", ret); if (ret < 0) goto err; @@ -625,6 +633,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) rs_set_nonblocking(new_rs, O_NONBLOCK); ret = rs_create_ep(new_rs); + printf("raccept create ep %d\n", ret); if (ret) goto err; @@ -632,6 +641,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) param = new_rs->cm_id->event->param.conn; rs_set_conn_data(new_rs, ¶m, &cresp); ret = rdma_accept(new_rs->cm_id, ¶m); + printf("raccept rdma accept %d\n", ret); if (!ret) new_rs->state = rs_connect_rdwr; else if (errno == EAGAIN || errno == EWOULDBLOCK)