]> git.openfabrics.org - ~shefty/librdmacm.git/log
~shefty/librdmacm.git
12 years agorefresh (create temporary patch)
Sean Hefty [Sun, 27 May 2012 21:48:11 +0000 (14:48 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sun, 27 May 2012 21:48:11 +0000 (14:48 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-opt-qpsize
Sean Hefty [Sun, 27 May 2012 21:48:10 +0000 (14:48 -0700)]
Refresh of rs-opt-qpsize

12 years agopop
Sean Hefty [Sun, 27 May 2012 21:47:05 +0000 (14:47 -0700)]
pop

12 years agopop
Sean Hefty [Sun, 27 May 2012 21:47:05 +0000 (14:47 -0700)]
pop

12 years agorefresh
Sean Hefty [Sun, 27 May 2012 21:46:25 +0000 (14:46 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sun, 27 May 2012 21:46:25 +0000 (14:46 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sun, 27 May 2012 21:46:25 +0000 (14:46 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sun, 27 May 2012 21:46:25 +0000 (14:46 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rstream-conn
Sean Hefty [Sun, 27 May 2012 21:46:25 +0000 (14:46 -0700)]
Refresh of rstream-conn

12 years agorstream: Use separate connections for latency/bw tests
Sean Hefty [Sun, 27 May 2012 21:07:42 +0000 (14:07 -0700)]
rstream: Use separate connections for latency/bw tests

Optimize each connection for either latency or bandwidth
results.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Sun, 27 May 2012 21:07:42 +0000 (14:07 -0700)]
new

12 years agonew
Sean Hefty [Sun, 27 May 2012 21:07:42 +0000 (14:07 -0700)]
new

12 years agorstream: Use separate connections for latency/bw tests
Sean Hefty [Sun, 27 May 2012 21:07:42 +0000 (14:07 -0700)]
rstream: Use separate connections for latency/bw tests

Optimize each connection for either latency or bandwidth
results.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agodelete
Sean Hefty [Sat, 26 May 2012 19:23:26 +0000 (12:23 -0700)]
delete

12 years agodelete
Sean Hefty [Sat, 26 May 2012 19:23:26 +0000 (12:23 -0700)]
delete

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 19:22:52 +0000 (12:22 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 19:22:52 +0000 (12:22 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 19:21:30 +0000 (12:21 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 19:21:30 +0000 (12:21 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-recv-hang
Sean Hefty [Sat, 26 May 2012 19:21:30 +0000 (12:21 -0700)]
Refresh of rs-recv-hang

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 19:21:25 +0000 (12:21 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 19:21:25 +0000 (12:21 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 19:21:25 +0000 (12:21 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 19:21:25 +0000 (12:21 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-recv-hang
Sean Hefty [Sat, 26 May 2012 19:21:25 +0000 (12:21 -0700)]
Refresh of rs-recv-hang

12 years agopop
Sean Hefty [Sat, 26 May 2012 19:07:42 +0000 (12:07 -0700)]
pop

12 years agopop
Sean Hefty [Sat, 26 May 2012 19:07:42 +0000 (12:07 -0700)]
pop

12 years agopop
Sean Hefty [Sat, 26 May 2012 07:43:03 +0000 (00:43 -0700)]
pop

12 years agopop
Sean Hefty [Sat, 26 May 2012 07:43:03 +0000 (00:43 -0700)]
pop

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 07:43:01 +0000 (00:43 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 07:43:01 +0000 (00:43 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 07:43:00 +0000 (00:43 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 07:43:00 +0000 (00:43 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-test-nonblock
Sean Hefty [Sat, 26 May 2012 07:43:00 +0000 (00:43 -0700)]
Refresh of rs-test-nonblock

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 07:26:21 +0000 (00:26 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 07:26:21 +0000 (00:26 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 07:26:21 +0000 (00:26 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 07:26:21 +0000 (00:26 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-test-nonblock
Sean Hefty [Sat, 26 May 2012 07:26:21 +0000 (00:26 -0700)]
Refresh of rs-test-nonblock

12 years agorsocket: Merge nonblock test with test() routine in rs_process_cq
Sean Hefty [Sat, 26 May 2012 07:02:47 +0000 (00:02 -0700)]
rsocket: Merge nonblock test with test() routine in rs_process_cq

rs_process_cq takes the following 2 parameters: nonblock and test().
These are used to control the operation of rs_process_cq.  If
nonblock is true, rs_process_cq will exit without arming the CQ or
waiting on a CQ event.  rs_process_cq() will also exit if test()
returns true.  The only difference in the operation is the return
value that rs_process_cq() returns.

We can simplify the code by merging the nonblock test into the
caller's provided test() routine.  The test() routine simply needs
to return the correct value for rs_process_cq().  This will also
simplify fixing an issue where a caller may block indefinitely
in send() or recv() after an rsocket has been disconnected.  That
fix is in a subsequent patch.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Merge nonblock test with test() routine in rs_process_cq
Sean Hefty [Sat, 26 May 2012 07:02:47 +0000 (00:02 -0700)]
rsocket: Merge nonblock test with test() routine in rs_process_cq

rs_process_cq takes the following 2 parameters: nonblock and test().
These are used to control the operation of rs_process_cq.  If
nonblock is true, rs_process_cq will exit without arming the CQ or
waiting on a CQ event.  rs_process_cq() will also exit if test()
returns true.  The only difference in the operation is the return
value that rs_process_cq() returns.

We can simplify the code by merging the nonblock test into the
caller's provided test() routine.  The test() routine simply needs
to return the correct value for rs_process_cq().  This will also
simplify fixing an issue where a caller may block indefinitely
in send() or recv() after an rsocket has been disconnected.  That
fix is in a subsequent patch.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Sat, 26 May 2012 07:02:47 +0000 (00:02 -0700)]
new

12 years agonew
Sean Hefty [Sat, 26 May 2012 07:02:47 +0000 (00:02 -0700)]
new

12 years agorsocket: Merge nonblock test with test() routine in rs_process_cq
Sean Hefty [Sat, 26 May 2012 07:02:47 +0000 (00:02 -0700)]
rsocket: Merge nonblock test with test() routine in rs_process_cq

rs_process_cq takes the following 2 parameters: nonblock and test().
These are used to control the operation of rs_process_cq.  If
nonblock is true, rs_process_cq will exit without arming the CQ or
waiting on a CQ event.  rs_process_cq() will also exit if test()
returns true.  The only difference in the operation is the return
value that rs_process_cq() returns.

We can simplify the code by merging the nonblock test into the
caller's provided test() routine.  The test() routine simply needs
to return the correct value for rs_process_cq().  This will also
simplify fixing an issue where a caller may block indefinitely
in send() or recv() after an rsocket has been disconnected.  That
fix is in a subsequent patch.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Sat, 26 May 2012 06:56:14 +0000 (23:56 -0700)]
pop

12 years agopop
Sean Hefty [Sat, 26 May 2012 06:56:14 +0000 (23:56 -0700)]
pop

12 years agorsocket: Fix hang in rrecv/rsend after disconnecting
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
rsocket: Fix hang in rrecv/rsend after disconnecting

If a user calls rrecv() after a blocking rsocket has been disconnected,
it will hang.  This problem and the cause was reported by Sirdhar Samudrala
<samudrala@us.ibm.com>.  It can be reproduced by running netserver -f -D
using the rs-preload library.  A similar issue exists with rsend().

Fix this by not blocking on a CQ unless we're connected.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Fix hang in rrecv() after disconnecting
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
rsocket: Fix hang in rrecv() after disconnecting

If a user calls rrecv() after a blocking rsocket has been disconnected,
it will hang.  This problem was reported by Sirdhar Samudrala
<samudrala@us.ibm.com>.  It can be reproduced by running netserver -f -D
using the rs-preload library.

Signed-off-by: Pradeep Satyanarayana <pradeeps@linux.vnet.ibm.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Fix hang in rrecv() after disconnecting
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
rsocket: Fix hang in rrecv() after disconnecting

If a user calls rrecv() after a blocking rsocket has been disconnected,
it will hang.  This problem was reported by Sirdhar Samudrala
<samudrala@us.ibm.com>.  It can be reproduced by running netserver -f -D
using the rs-preload library.

Signed-off-by: Pradeep Satyanarayana <pradeeps@linux.vnet.ibm.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Sat, 26 May 2012 00:44:48 +0000 (17:44 -0700)]
pop

12 years agopop
Sean Hefty [Sat, 26 May 2012 00:44:48 +0000 (17:44 -0700)]
pop

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 00:44:04 +0000 (17:44 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 00:44:04 +0000 (17:44 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 00:44:04 +0000 (17:44 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 00:44:04 +0000 (17:44 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-states
Sean Hefty [Sat, 26 May 2012 00:44:04 +0000 (17:44 -0700)]
Refresh of rs-states

12 years agorsockets: Simplify state checks
Sean Hefty [Sat, 26 May 2012 00:28:44 +0000 (17:28 -0700)]
rsockets: Simplify state checks

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Sat, 26 May 2012 00:28:44 +0000 (17:28 -0700)]
new

12 years agonew
Sean Hefty [Sat, 26 May 2012 00:28:44 +0000 (17:28 -0700)]
new

12 years agorsockets: Simplify state checks
Sean Hefty [Sat, 26 May 2012 00:28:44 +0000 (17:28 -0700)]
rsockets: Simplify state checks

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Sat, 26 May 2012 00:28:17 +0000 (17:28 -0700)]
pop

12 years agopop
Sean Hefty [Sat, 26 May 2012 00:28:17 +0000 (17:28 -0700)]
pop

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 00:28:14 +0000 (17:28 -0700)]
refresh

12 years agorefresh
Sean Hefty [Sat, 26 May 2012 00:28:14 +0000 (17:28 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 00:28:14 +0000 (17:28 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Sat, 26 May 2012 00:28:14 +0000 (17:28 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-recv-hang
Sean Hefty [Sat, 26 May 2012 00:28:14 +0000 (17:28 -0700)]
Refresh of rs-recv-hang

12 years agorsocket: Fix hang in rrecv() after disconnecting
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
rsocket: Fix hang in rrecv() after disconnecting

If a user calls rrecv() after a blocking rsocket has been disconnected,
it will hang.  This problem was reported by Sirdhar Samudrala
<samudrala@us.ibm.com>.  It can be reproduced by running netserver -f -D
using the rs-preload library.

Signed-off-by: Pradeep Satyanarayana <pradeeps@linux.vnet.ibm.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
new

12 years agonew
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
new

12 years agorsocket: Fix hang in rrecv() after disconnecting
Sean Hefty [Sat, 26 May 2012 00:24:08 +0000 (17:24 -0700)]
rsocket: Fix hang in rrecv() after disconnecting

If a user calls rrecv() after a blocking rsocket has been disconnected,
it will hang.  This problem was reported by Sirdhar Samudrala
<samudrala@us.ibm.com>.  It can be reproduced by running netserver -f -D
using the rs-preload library.

Signed-off-by: Pradeep Satyanarayana <pradeeps@linux.vnet.ibm.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Fri, 25 May 2012 19:57:17 +0000 (12:57 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 25 May 2012 19:57:17 +0000 (12:57 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:57:17 +0000 (12:57 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:57:17 +0000 (12:57 -0700)]
refresh (create temporary patch)

12 years agoRefresh of pre-socket
Sean Hefty [Fri, 25 May 2012 19:57:17 +0000 (12:57 -0700)]
Refresh of pre-socket

12 years agors-preload: Handle recursive socket() calls
Sean Hefty [Fri, 25 May 2012 19:42:12 +0000 (12:42 -0700)]
rs-preload: Handle recursive socket() calls

When ACM support is enabled in the librdmacm, it will attempt to
establish a socket connection to the ACM daemon.  When the rsocket
preload library is in use, this can result in a recursive call
to socket() that results in the library hanging.  The resulting
call stack is:

socket() -> rsocket() -> rdma_create_id() -> ucma_init() ->
socket() -> rsocket() -> rdma_create_id() -> ucma_init()

The second call to ucma_init() hangs because initialization is
still pending.

Fix this by checking for recursive calls to socket() in the preload
library.  When detected, call the real socket() call instead of
directing the call back into rsockets().  Since rsockets is a part
of the librdmacm, it can call rsockets directly if it wants to use
rsockets instead of standard sockets.

This problem and the cause was reported by Chet Murthy <chet@watson.ibm.com>

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Fri, 25 May 2012 19:42:12 +0000 (12:42 -0700)]
new

12 years agonew
Sean Hefty [Fri, 25 May 2012 19:42:12 +0000 (12:42 -0700)]
new

12 years agors-preload: Handle recursive socket() calls
Sean Hefty [Fri, 25 May 2012 19:42:12 +0000 (12:42 -0700)]
rs-preload: Handle recursive socket() calls

When ACM support is enabled in the librdmacm, it will attempt to
establish a socket connection to the ACM daemon.  When the rsocket
preload library is in use, this can result in a recursive call
to socket() that results in the library hanging.  The resulting
call stack is:

socket() -> rsocket() -> rdma_create_id() -> ucma_init() ->
socket() -> rsocket() -> rdma_create_id() -> ucma_init()

The second call to ucma_init() hangs because initialization is
still pending.

Fix this by checking for recursive calls to socket() in the preload
library.  When detected, call the real socket() call instead of
directing the call back into rsockets().  Since rsockets is a part
of the librdmacm, it can call rsockets directly if it wants to use
rsockets instead of standard sockets.

This problem and the cause was reported by Chet Murthy <chet@watson.ibm.com>

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Fri, 25 May 2012 19:32:48 +0000 (12:32 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 25 May 2012 19:32:48 +0000 (12:32 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:32:48 +0000 (12:32 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:32:48 +0000 (12:32 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-with-acm
Sean Hefty [Fri, 25 May 2012 19:32:48 +0000 (12:32 -0700)]
Refresh of rs-with-acm

12 years agorefresh
Sean Hefty [Fri, 25 May 2012 19:30:40 +0000 (12:30 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 25 May 2012 19:30:40 +0000 (12:30 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:30:40 +0000 (12:30 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:30:40 +0000 (12:30 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-with-acm
Sean Hefty [Fri, 25 May 2012 19:30:40 +0000 (12:30 -0700)]
Refresh of rs-with-acm

12 years agolibrdmacm: Delay ACM connection until resolving an address
Sean Hefty [Fri, 25 May 2012 17:48:47 +0000 (10:48 -0700)]
librdmacm: Delay ACM connection until resolving an address

Avoid creating a connection to the ACM service when
it's not needed.  For example, if the user of the librdmacm
is a server application, it will not use ACM services.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agolibrdmacm: Delay ACM connection until resolving an address
Sean Hefty [Fri, 25 May 2012 17:48:47 +0000 (10:48 -0700)]
librdmacm: Delay ACM connection until resolving an address

Avoid creating a connection to the ACM service when
it's not needed.  For example, if the user of the librdmacm
is a server application, it will not use ACM services.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Fri, 25 May 2012 19:29:29 +0000 (12:29 -0700)]
pop

12 years agopop
Sean Hefty [Fri, 25 May 2012 19:29:29 +0000 (12:29 -0700)]
pop

12 years agolibrdmacm: Delay ACM connection until resolving an address
Sean Hefty [Fri, 25 May 2012 17:48:47 +0000 (10:48 -0700)]
librdmacm: Delay ACM connection until resolving an address

Avoid creating a connection to the ACM service when
it's not needed.  For example, if the user of the librdmacm
is a server application, it will not use ACM services.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agoacm: Use -1 to indicate an invalid socket rather than 0
Sean Hefty [Fri, 25 May 2012 19:23:10 +0000 (12:23 -0700)]
acm: Use -1 to indicate an invalid socket rather than 0

socket() can return 0 as a valid socket.  This can happen
when using a daemon that closes stdin/out/err.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Fri, 25 May 2012 19:29:17 +0000 (12:29 -0700)]
pop

12 years agopop
Sean Hefty [Fri, 25 May 2012 19:29:17 +0000 (12:29 -0700)]
pop

12 years agorsockets: Reduce the default inline size
Sean Hefty [Fri, 25 May 2012 01:18:43 +0000 (18:18 -0700)]
rsockets: Reduce the default inline size

Inline data consumes the same space used by the SGL.  Since
we reduced the default number of SGEs per SQ entry to 1,
also reduce the default inline data size to 16 bytes.
Otherwise, the SQ size won't actually be reduced.

Although this increases the latency of small messages over
16 bytes, tests show that decreasing the inline data size
from 64 bytes to 32 or 16 bytes improves large message
bandwidth 8-10%.

Sample rstream 64k_bw test results:

inline size 64: 24.85 Gbps
inline size 16: 26.5  Gbps

Signed-off-by: Sean Hefty <sean.hefty@intel.com>