]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
new
authorSean Hefty <sean.hefty@intel.com>
Fri, 25 May 2012 17:48:48 +0000 (10:48 -0700)
committerSean Hefty <sean.hefty@intel.com>
Fri, 25 May 2012 17:48:48 +0000 (10:48 -0700)
meta
patches/rs-with-acm [new file with mode: 0644]

diff --git a/meta b/meta
index bfd9d5aba0ac812a64101d92ecc249e42c747c4d..ee64ebefdecfcc0fa99f72c68ef27c473cb9710c 100644 (file)
--- a/meta
+++ b/meta
@@ -1,6 +1,6 @@
 Version: 1
-Previous: a6eecc16e7021daf7f3f088de328bf833795ffc0
-Head: 96d204753f2d1a48cb8ee01a32ab09ae411cb03f
+Previous: 34b5470f82790110919e5e311673c9ac2bd390b8
+Head: 28629968c68f29f3cddd04f51d03804507587887
 Applied:
   destroy_cqs: 66410c265b2661e16b7f6126bcc4ea5c7e1af1bd
   conn-err: ac46465ae6061b06f005ba9b49b371c9eb0d2325
@@ -13,5 +13,6 @@ Applied:
   rs-def-qpsize: 2fa74d987f14bf98bc599287a3eea8e008275f34
   rs-1sge: 4c75264faedfa3aa871d7a2326f268fc8e34cd14
   rs-def-inline: 96d204753f2d1a48cb8ee01a32ab09ae411cb03f
+  rs-with-acm: 28629968c68f29f3cddd04f51d03804507587887
 Unapplied:
 Hidden:
diff --git a/patches/rs-with-acm b/patches/rs-with-acm
new file mode 100644 (file)
index 0000000..660a5a9
--- /dev/null
@@ -0,0 +1,33 @@
+Bottom: caec06cc45592384f2a93faf3ca4f4571b1481ff
+Top:    caec06cc45592384f2a93faf3ca4f4571b1481ff
+Author: Sean Hefty <sean.hefty@intel.com>
+Date:   2012-05-25 10:48:47 -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>
+
+
+---
+
+