]> git.openfabrics.org - ~shefty/librdmacm.git/log
~shefty/librdmacm.git
12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 25 May 2012 19:20:21 +0000 (12:20 -0700)]
refresh (create temporary patch)

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

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

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

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

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

When ACM support is enabled, the librdmacm will attempt to connect
to the ACM service during startup.  This results in the library
hanging when rsockets are being used with the rs-preload library.
The code path ends up as:

socket() -> rs-preload redirects to rsocket()
rsocket() -> rdma_create_id() -> ucma_init()
ucma_init() acquires mutex -> calls socket()
rs-preload() redirects call to rsocket()
rsocket() -> rdma_create_id() -> ucma_init()
ucma_init() hangs trying to acquire mutex

This problem was pointed out by Chet Murthy <chet@watson.ibm.com>.

To fix this, delay connecting to the ACM service until it's
actually needed.  This not only avoids the hang described above,
but also avoids 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 agonew
Sean Hefty [Fri, 25 May 2012 01:18:43 +0000 (18:18 -0700)]
new

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

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>
12 years agopop
Sean Hefty [Fri, 25 May 2012 00:24:25 +0000 (17:24 -0700)]
pop

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

12 years agorsocket: Reduce SQ from 2 SGE per WR to 1 SGE
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
rsocket: Reduce SQ from 2 SGE per WR to 1 SGE

We currently request 2 SGEs per WR when allocating a QP.  The
second SGE is only used when sending data at the end of
the circular send buffer and the start.  All other sends are
restricted to a single SGE.

Reduce the size of the SQ by only requesting 1 SGE per WR.  The
resulting performance is basically unaffected.

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

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

12 years agorsockets: Change the default QP size from 512 to 384
Sean Hefty [Thu, 24 May 2012 21:31:12 +0000 (14:31 -0700)]
rsockets: Change the default QP size from 512 to 384

Simple bandwidth tests using rstream showed no difference in
performance between using a QP sized to 384 entries versus 512.
Reduce the overhead of a default rsocket by using 384 entries.
A user can request a larger size by calling rsetsockopt.

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

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

12 years agorstream: Add option to specify size of send/recv buffers
Sean Hefty [Wed, 23 May 2012 18:32:46 +0000 (11:32 -0700)]
rstream: Add option to specify size of send/recv buffers

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

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

12 years agorsocket preload: Use environment variable to set QP size
Sean Hefty [Tue, 22 May 2012 01:46:36 +0000 (18:46 -0700)]
rsocket preload: Use environment variable to set QP size

Allow the user to specify the size of the send/receive queues
and inline data size through environment variables:
RS_SQ_SIZE, RS_RQ_SIZE, and RS_INLINE.

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

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

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

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

12 years agoRefresh of rs-opt-inline
Sean Hefty [Fri, 25 May 2012 00:22:39 +0000 (17:22 -0700)]
Refresh of rs-opt-inline

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

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

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

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

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

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

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

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

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 23:39:52 +0000 (16:39 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 23:39:52 +0000 (16:39 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 23:39:52 +0000 (16:39 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 23:39:52 +0000 (16:39 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-1sge
Sean Hefty [Thu, 24 May 2012 23:39:52 +0000 (16:39 -0700)]
Refresh of rs-1sge

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 23:26:14 +0000 (16:26 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 23:26:14 +0000 (16:26 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 23:26:14 +0000 (16:26 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 23:26:14 +0000 (16:26 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-1sge
Sean Hefty [Thu, 24 May 2012 23:26:14 +0000 (16:26 -0700)]
Refresh of rs-1sge

12 years agorsocket: Reduce SQ from 2 SGE per WR to 1 SGE
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
rsocket: Reduce SQ from 2 SGE per WR to 1 SGE

We currently request 2 SGEs per WR when allocating a QP.  The
second SGE is only used when sending data at the end of
the circular send buffer and the start.  All other sends are
restricted to a single SGE.

Reduce the size of the SQ by only requesting 1 SGE per WR.  The
resulting performance is basically unaffected.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Reduce SQ from 2 SGE per WR to 1 SGE
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
rsocket: Reduce SQ from 2 SGE per WR to 1 SGE

We currently request 2 SGEs per WR when allocating a QP.  The
second SGE is only used when sending data at the end of
the circular send buffer and the start.  All other sends are
restricted to a single SGE.

Reduce the size of the SQ by only requesting 1 SGE per WR.  The
resulting performance is basically unaffected.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:44 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:44 +0000 (15:25 -0700)]
pop

12 years agorsocket: Reduce SQ from 2 SGE per WR to 1 SGE
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
rsocket: Reduce SQ from 2 SGE per WR to 1 SGE

We currently request 2 SGEs per WR when allocating a QP.  The
second SGE is only used when sending data at the end of
the circular send buffer and the start.  All other sends are
restricted to a single SGE.

Reduce the size of the SQ by only requesting 1 SGE per WR.  The
resulting performance is basically unaffected.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Change the default QP size from 512 to 384
Sean Hefty [Thu, 24 May 2012 21:31:12 +0000 (14:31 -0700)]
rsockets: Change the default QP size from 512 to 384

Simple bandwidth tests using rstream showed no difference in
performance between using a QP sized to 384 entries versus 512.
Reduce the overhead of a default rsocket by using 384 entries.
A user can request a larger size by calling rsetsockopt.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:41 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:41 +0000 (15:25 -0700)]
pop

12 years agorstream: Add option to specify size of send/recv buffers
Sean Hefty [Wed, 23 May 2012 18:32:46 +0000 (11:32 -0700)]
rstream: Add option to specify size of send/recv buffers

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

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:29 +0000 (15:25 -0700)]
pop

12 years agorsocket: Add option to specify size of inline data
Sean Hefty [Tue, 22 May 2012 18:39:21 +0000 (11:39 -0700)]
rsocket: Add option to specify size of inline data

Allow the user to override the default inline data size.
We still require a minimum size in order to transfer receive
buffer update message.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket: Add option to specify size of inline data
Sean Hefty [Tue, 22 May 2012 18:39:21 +0000 (11:39 -0700)]
rsocket: Add option to specify size of inline data

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsocket preload: Use environment variable to set QP size
Sean Hefty [Tue, 22 May 2012 01:46:36 +0000 (18:46 -0700)]
rsocket preload: Use environment variable to set QP size

Allow the user to specify the size of the send/receive queues
and inline data size through environment variables:
RS_SQ_SIZE, RS_RQ_SIZE, and RS_INLINE.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:27 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:27 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:27 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:27 +0000 (15:25 -0700)]
pop

12 years agorsockets: Allow user to specify the QP sizes
Sean Hefty [Fri, 18 May 2012 23:56:15 +0000 (16:56 -0700)]
rsockets: Allow user to specify the QP sizes

Add setsockopt options that allow the user to specify the desired
size of the underlying QP.  The provided sizes are used as the
maximum size when creating the QP.  The actual sizes of the QP
are the smaller of the user provided maximum and the maximum
sizes supported by the underlying hardware.

A user may retrieve the actual sizes of the QP through the
getsockopt call.

The send and receive queue sizes are specified separately.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:26 +0000 (15:25 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:26 +0000 (15:25 -0700)]
pop

12 years agorsockets: Define options specific to rsockets
Sean Hefty [Fri, 18 May 2012 23:36:07 +0000 (16:36 -0700)]
rsockets: Define options specific to rsockets

Allow a user to control some of the RDMA related attributes
of an rsocket through setsockopt/getsockopt.  A user specifies
that the rsocket should be modified through SOL_RDMA level.

This patch provides the initial framework.  Subsequent patches
will add the configurable parameters.

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

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:25:25 +0000 (15:25 -0700)]
pop

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 22:25:23 +0000 (15:25 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 22:25:23 +0000 (15:25 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 22:25:23 +0000 (15:25 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 22:25:23 +0000 (15:25 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-qpsize
Sean Hefty [Thu, 24 May 2012 22:25:23 +0000 (15:25 -0700)]
Refresh of rs-qpsize

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:56 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:56 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:55 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:55 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:53 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:53 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:52 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:52 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:51 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:51 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:50 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:50 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:50 +0000 (15:17 -0700)]
pop

12 years agopop
Sean Hefty [Thu, 24 May 2012 22:17:50 +0000 (15:17 -0700)]
pop

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 22:17:48 +0000 (15:17 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 22:17:48 +0000 (15:17 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 22:17:47 +0000 (15:17 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 22:17:47 +0000 (15:17 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-1sge
Sean Hefty [Thu, 24 May 2012 22:17:47 +0000 (15:17 -0700)]
Refresh of rs-1sge

12 years agonew
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
new

12 years agonew
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
new

12 years agorsocket: Reduce SQ from 2 SGE per WR to 1 SGE
Sean Hefty [Thu, 24 May 2012 21:36:41 +0000 (14:36 -0700)]
rsocket: Reduce SQ from 2 SGE per WR to 1 SGE

We currently request 2 SGEs per WR when allocating a QP.  The
second SGE is only used when sending data at the end of
the circular send buffer and the start.  All other sends are
restricted to a single SGE.

Reduce the size of the SQ by only requesting 1 SGE per WR.  The
resulting performance is basically unaffected.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Thu, 24 May 2012 21:31:52 +0000 (14:31 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 24 May 2012 21:31:52 +0000 (14:31 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 21:31:52 +0000 (14:31 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 24 May 2012 21:31:52 +0000 (14:31 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-def-qpsize
Sean Hefty [Thu, 24 May 2012 21:31:52 +0000 (14:31 -0700)]
Refresh of rs-def-qpsize