]> git.openfabrics.org - ~shefty/rdma-win.git/commit
ibat/resolve: retry ibat resolution
authorSean Hefty <sean.hefty@intel.com>
Wed, 17 Feb 2010 18:12:23 +0000 (10:12 -0800)
committerSean Hefty <sean.hefty@intel.com>
Wed, 17 Feb 2010 18:12:23 +0000 (10:12 -0800)
commit259d61aef2214addaf218e0e055cf35f20000780
tree1a90d794717896554d2561a768f575bb9fca7ce3
parenteae59391d42fc62a1790bad6abf914274720f81c
ibat/resolve: retry ibat resolution

Winverbs ND scale out testing showed that IBAT::Resolve() can
return E_PENDING, which requires that the resolution be retried.
A similar issue to this was seen when testing with the librdmacm.
Rather than duplicating retry logic in the winverbs ND provider,
add new functionality to ibat, with retry capability.  To
avoid breaking the ibat.dll interface, extend the API with a
new call ResolvePath() that takes a timeout value.

ResolvePath() automatically retries Resolve() while the result
is E_PENDING, until the request times out.  Modify the winverbs
ND provider to call ResolvePath().  Also update other places
where Resolve() is called in a loop: the librdmacm and wsd.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
trunk/core/ibat/user/ibat.cpp
trunk/inc/user/iba/ibat.h
trunk/ulp/dapl2/dapl/include/dapl.h
trunk/ulp/dapl2/dapl/openib_common/qp.c
trunk/ulp/dapl2/dapl/openib_scm/cm.c
trunk/ulp/librdmacm/src/cma.cpp
trunk/ulp/netdirect/user/nd_connect.cpp
trunk/ulp/wsd/user/ibsp_ip.c