]> git.openfabrics.org - ~shefty/librdmacm.git/log
~shefty/librdmacm.git
12 years agopop
Sean Hefty [Fri, 11 May 2012 17:41:35 +0000 (10:41 -0700)]
pop

12 years agopop
Sean Hefty [Fri, 11 May 2012 17:41:35 +0000 (10:41 -0700)]
pop

12 years agorefresh
Sean Hefty [Fri, 11 May 2012 17:41:32 +0000 (10:41 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 11 May 2012 17:41:32 +0000 (10:41 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 17:41:32 +0000 (10:41 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 17:41:32 +0000 (10:41 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rstream-async-opt
Sean Hefty [Fri, 11 May 2012 17:41:32 +0000 (10:41 -0700)]
Refresh of rstream-async-opt

12 years agorstream: Clarify use of async test option
Sean Hefty [Fri, 11 May 2012 17:41:02 +0000 (10:41 -0700)]
rstream: Clarify use of async test option

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Fri, 11 May 2012 17:41:02 +0000 (10:41 -0700)]
new

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

12 years agorstream: Clarify use of async test option
Sean Hefty [Fri, 11 May 2012 17:41:02 +0000 (10:41 -0700)]
rstream: Clarify use of async test option

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Fri, 11 May 2012 17:38:13 +0000 (10:38 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 11 May 2012 17:38:13 +0000 (10:38 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 17:38:13 +0000 (10:38 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 17:38:13 +0000 (10:38 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rstream-delay
Sean Hefty [Fri, 11 May 2012 17:38:13 +0000 (10:38 -0700)]
Refresh of rstream-delay

12 years agolibrdmacm/rstream: Set rsocket nonblocking for base tests
Sean Hefty [Fri, 11 May 2012 17:33:13 +0000 (10:33 -0700)]
librdmacm/rstream: Set rsocket nonblocking for base tests

The base set of rstream tests want nonblocking rsockets, but don't
actually set the rsocket to nonblocking.  It instead relies on the
MSG_DONTWAIT flag.  Make the code match the expected behavior and
set the rsocket to nonblocking and make nonblocking the default.

Provide a test option to switch it back to blocking mode.  We keep
the existing nonblocking test option for compatibility.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Fri, 11 May 2012 17:33:13 +0000 (10:33 -0700)]
new

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

12 years agolibrdmacm/rstream: Set rsocket nonblocking for base tests
Sean Hefty [Fri, 11 May 2012 17:33:13 +0000 (10:33 -0700)]
librdmacm/rstream: Set rsocket nonblocking for base tests

The base set of rstream tests want nonblocking rsockets, but don't
actually set the rsocket to nonblocking.  It instead relies on the
MSG_DONTWAIT flag.  Make the code match the expected behavior and
set the rsocket to nonblocking and make nonblocking the default.

Provide a test option to switch it back to blocking mode.  We keep
the existing nonblocking test option for compatibility.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Fri, 11 May 2012 16:40:28 +0000 (09:40 -0700)]
refresh

12 years agorefresh
Sean Hefty [Fri, 11 May 2012 16:40:28 +0000 (09:40 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 16:40:13 +0000 (09:40 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Fri, 11 May 2012 16:40:13 +0000 (09:40 -0700)]
refresh (create temporary patch)

12 years agoRefresh of reuseaddr
Sean Hefty [Fri, 11 May 2012 16:40:12 +0000 (09:40 -0700)]
Refresh of reuseaddr

12 years agorefresh
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh

12 years agorefresh
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
refresh (create temporary patch)

12 years agoRefresh of reuseaddr
Sean Hefty [Thu, 10 May 2012 18:28:17 +0000 (11:28 -0700)]
Refresh of reuseaddr

12 years agolibrdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
librdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets

The RDMA CM fail calls to set REUSEADDR on an rdma_cm_id if
it is not in the idle state.  As a result, this causes a failure
in NetPipe when run with socket calls intercepted by rsockets.
Fix this by returning success when REUSEADDR is set on an rsocket
that has already been connected.  When running over IB, REUSEADDR
is not necessary, since the TCP/IP addresses are mapped.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agolibrdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
librdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets

The RDMA CM fail calls to set REUSEADDR on an rdma_cm_id if
it is not in the idle state.  As a result, this causes a failure
in NetPipe when is run with socket calls intercepted by rsockets.
Fix this by returning success when REUSEADDR is set on an rsocket
that has already been connected.  When running over IB, REUSEADDR
is not necessary, since the TCP/IP addresses are mapped.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
new

12 years agonew
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
new

12 years agolibrdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets
Sean Hefty [Thu, 10 May 2012 18:17:32 +0000 (11:17 -0700)]
librdmacm/rsocket: Succeed setsockopt REUSEADDR on connected sockets

The RDMA CM fail calls to set REUSEADDR on an rdma_cm_id if
it is not in the idle state.  As a result, this causes a failure
in NetPipe when is run with socket calls intercepted by rsockets.
Fix this by returning success when REUSEADDR is set on an rsocket
that has already been connected.  When running over IB, REUSEADDR
is not necessary, since the TCP/IP addresses are mapped.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Thu, 10 May 2012 17:42:22 +0000 (10:42 -0700)]
refresh

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

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 17:42:21 +0000 (10:42 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Thu, 10 May 2012 17:42:21 +0000 (10:42 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Thu, 10 May 2012 17:42:21 +0000 (10:42 -0700)]
Refresh of rs-locking

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:50:18 +0000 (15:50 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:50:18 +0000 (15:50 -0700)]
refresh

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

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

12 years agoRefresh of rs-locking
Sean Hefty [Wed, 9 May 2012 22:25:37 +0000 (15:25 -0700)]
Refresh of rs-locking

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

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

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
refresh (create temporary patch)

12 years agoRefresh of comp_locks
Sean Hefty [Wed, 9 May 2012 22:04:10 +0000 (15:04 -0700)]
Refresh of comp_locks

12 years agocompare fastlock versus mutex
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
compare fastlock versus mutex

12 years agonew
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
new

12 years agonew
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
new

12 years agocompare fastlock versus mutex
Sean Hefty [Wed, 9 May 2012 21:54:17 +0000 (14:54 -0700)]
compare fastlock versus mutex

12 years agopop
Sean Hefty [Wed, 9 May 2012 21:02:16 +0000 (14:02 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 21:02:16 +0000 (14:02 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 20:52:34 +0000 (13:52 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 9 May 2012 20:52:34 +0000 (13:52 -0700)]
pop

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Wed, 9 May 2012 20:52:31 +0000 (13:52 -0700)]
Refresh of rs-locking

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh

12 years agorefresh
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Wed, 9 May 2012 17:40:13 +0000 (10:40 -0700)]
Refresh of rs-locking

12 years agorefresh
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh

12 years agorefresh
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
refresh (create temporary patch)

12 years agoRefresh of rs-locking
Sean Hefty [Tue, 8 May 2012 00:48:50 +0000 (17:48 -0700)]
Refresh of rs-locking

12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Hotspot performance analysis using VTune showed pthread_mutex_unlock()
as the most significant hotspot when transferring small messages using
rstream.  To reduce the impact of using pthread mutexes, replace it
with a custom lock built using an atomic variable and a semaphore.
When there's no contention for the lock (which is the expected case
for nonblocking sockets), the synchronization is reduced to
incrementing and decrementing an atomic variable.

A test that acquired and released a lock 2 billion times reported that
the custom lock was roughly 20% faster than using the mutex.
26.6 seconds versus 33.0 seconds.

Unfortunately, further analysis showed that using the custom lock
provided a minimal performance gain on rstream itself, and simply
moved the hotspot to the custom unlock call.  The hotspot is likely
a result of some other interaction, rather than caused by slowness
in releasing a lock.  However, we keep the custom lock based on
the results of the direct lock tests that were done.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Hotspot performance analysis using VTune showed pthread_mutex_unlock()
as the most significant hotspot when transferring small messages using
rstream.  To reduce the impact of using pthread mutexes, replace it
with a custom lock built using an atomic variable and a semaphore.
When there's no contention for the lock (which is the expected case
for nonblocking sockets), the synchronization is reduced to
incrementing and decrementing an atomic variable.

A test that acquired and released a lock 2 billion times reported that
the custom lock was roughly 20% faster than using the mutex.
26.6 seconds versus 33.0 seconds.

Unfortunately, further analysis showed that using the custom lock
provided a minimal performance gain on rstream itself, and simply
moved the hotspot to the custom unlock call.  The hotspot is likely
a result of some other interaction, rather than caused by slowness
in releasing a lock.  However, we keep the custom lock based on
the results of the direct lock tests that were done.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agonew
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
new

12 years agonew
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
new

12 years agorsockets: Optimize synchronization to improve performance
Sean Hefty [Tue, 8 May 2012 00:16:47 +0000 (17:16 -0700)]
rsockets: Optimize synchronization to improve performance

Performance analysis using VTune showed that pthread_mutex_unlock()
is the single biggest contributor to increasing latency for 64-byte
transfers.  Unlocked was followed by get_sw_cqe(), then
__pthread_mutex_lock().  Replace the use of mutexes with an atomic
and a semaphore.  When there's no contention for the lock (which
would usually be the case when using nonblocking sockets), the
code simply increments and decrements an atomic varible.  Semaphores
are only used when contention occurs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agocommit
Sean Hefty [Tue, 8 May 2012 00:12:03 +0000 (17:12 -0700)]
commit

12 years agocommit
Sean Hefty [Tue, 8 May 2012 00:12:03 +0000 (17:12 -0700)]
commit

12 years agopop
Sean Hefty [Wed, 2 May 2012 22:42:48 +0000 (15:42 -0700)]
pop

12 years agopop
Sean Hefty [Wed, 2 May 2012 22:42:48 +0000 (15:42 -0700)]
pop

12 years agonew
Sean Hefty [Wed, 25 Apr 2012 21:34:14 +0000 (14:34 -0700)]
new

12 years agonew
Sean Hefty [Wed, 25 Apr 2012 21:34:14 +0000 (14:34 -0700)]
new

12 years agorsocket: Add building of preload library to make
Sean Hefty [Wed, 25 Apr 2012 21:34:14 +0000 (14:34 -0700)]
rsocket: Add building of preload library to make

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh

12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
refresh (create temporary patch)

12 years agoRefresh of snprintf
Sean Hefty [Tue, 24 Apr 2012 18:25:01 +0000 (11:25 -0700)]
Refresh of snprintf

12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh

12 years agorefresh
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh (create temporary patch)

12 years agorefresh (create temporary patch)
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
refresh (create temporary patch)

12 years agoRefresh of snprintf
Sean Hefty [Tue, 24 Apr 2012 18:21:17 +0000 (11:21 -0700)]
Refresh of snprintf