Arlin Davis [Wed, 13 Aug 2008 21:17:40 +0000 (14:17 -0700)]
dapl scm: change connect and accept to non-blocking to avoid blocking user thread.
The connect socket that is used to exchange QP information is now non-blocking
and the data exchange is done via the cr thread. New state RTU_PENDING added.
On the passive side there is a new state ACCEPT_DATA used to avoid read blocking
on the user accept call.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Sun, 20 Jul 2008 20:13:09 +0000 (13:13 -0700)]
dapl scm: add support for UD extensions in Openfabrics socket cm provider
add qp_type in connection information exchange
add new post_send_ud call
changes to connection manager to support qp types beyond RC.
changes to connection events to use new extended event calls.
exchange address handle information during connection phase.
changes to modify_qp to handle both RC and UD types.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Sun, 20 Jul 2008 20:07:34 +0000 (13:07 -0700)]
dapl: add support for UD extensions in common code.
allow EP create for extended service types.
extend connection event types to include UD AH resolution/exchange.
add new extended connect and connect request upcalls for providers.
- dapls_evd_post_cr_event_ext
- dapls_evd_post_connection_event_ext
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Sun, 20 Jul 2008 19:57:49 +0000 (12:57 -0700)]
dat: New definitions for IB unreliable datagram extension
Extend EP dat_service_type, with DAT_IB_SERVICE_TYPE_UD
Add IB extension call dat_ib_post_send_ud().
Add address handle definition for UD calls.
Add IB event definitions to provide remote AH via connect and connect requests
Roll IB extension version to 2.0.2
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Thu, 19 Jun 2008 20:34:49 +0000 (13:34 -0700)]
dapl scm: fix ibv_destroy_cq busy error condition during dat_evd_free.
Problem surfaced while running Intel MPI 3.1 and mpich2-test suite.
dapli_destroy_cm was incorrectly removing reference to qp_handle in endpoint
and destroy_cq and destroy_pd code was ignoring verbs errors.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Mon, 16 Jun 2008 20:59:11 +0000 (13:59 -0700)]
dapl: endpoint pending request count is wrong
The code assumes every cookie allocated during posting of
requests gets completed. This incorrect assumption results in
wrong pending count. Remove request_pending field and replace
with direct call, dapl_cb_pending, to provide accurate
data to consumer.
Add debug print if consumer overruns request queue.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Mon, 2 Jun 2008 19:40:45 +0000 (12:40 -0700)]
dapl extension: dapli_post_ext should always allocate cookie for requests.
extension didn't allocate cookie if completion was suppressed which resulted
segfault during provider post call. Provider's expect cookie for wr_id,
even with surpressed completions, to handle events during errors.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Tue, 20 May 2008 21:31:09 +0000 (14:31 -0700)]
dapl: Fix long delays with the cma provider open call when DNS is not configure on server.
Open call should default to netdev names when resolving local IP address for cma binding to match dat.conf settings. The open code attempts to resolve with IP or Hostname first and if there is no DNS services setup the failover to netdev name resolution is delayed for as much as 20 seconds.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Tue, 22 Apr 2008 19:55:13 +0000 (12:55 -0700)]
dapl: evd_alloc doesn't check for direct_object_create errors.
Fix error check in dapls_ib_wait_object_create() and dat_evd_alloc.
When attempting to create large number of evd's that exceed
open files limit the error was not propagated up causing
a segfault. Note: there are 3 FD's required for each EVD
2 for pipe, and one for cq event_channel.
Change the error reporting to indicate correct return
code and send to log with non-debug builds.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Mon, 14 Apr 2008 20:10:13 +0000 (13:10 -0700)]
dapl: change packaging to modify OFA provider contents of dat.conf instead of file replacement.
Change the packaging to update only the OFA provider contents in dat.conf. This allows other
dapl providers, other then OFA, to co-exist and configure properly. Adding manpage to explain
syntax of this static configuration file.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Wed, 9 Apr 2008 00:25:11 +0000 (17:25 -0700)]
dapl: add hooks in evd connection callback code to deliver private data with consumer reject.
PEER rejects can include private data. The common code didn't support delivery
via the connect event data structure. Add the necessary hooks in
dapl_evd_connection_callback function and include checks in openib_cma
provider to check and delivery properly. Also, fix the private data size
check in dapls_ib_reject_connection function.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Sat, 5 Apr 2008 00:03:03 +0000 (16:03 -0800)]
dapl: add provider vendor revision data in private data with reject
Add 1 byte header containing provider/vendor major revision
to distinguish between consumer and non-consumer rejects.
Validate size of consumer reject privated data.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Fri, 4 Apr 2008 01:06:27 +0000 (17:06 -0800)]
dapl: add support for logging errors in non-debug build.
Add debug logging (stdout, syslog) for error cases during
device open, cm, async, and dto operations. Default settings
are ERR for DAPL_DBG_TYPE, and stdout for DAPL_DBG_DEST.
Change default configuration to build non-debug.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Tue, 1 Apr 2008 19:02:37 +0000 (11:02 -0800)]
dapl: calculate private data size based on transport type and cma_hdr overhead
Need to adjust CM private date size based on different transport types.
Add hca_ptr to dapls_ib_private_data_size call for transport type
validation via verbs device. Add definitions to include iWARP size
of 512 and subtract 36 bytes for cma_hdr overhead.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Tue, 18 Mar 2008 23:04:34 +0000 (15:04 -0800)]
remove unnecessary assert from dapl_ep_free.
dat_ep_free must handle the case where a consumer calls
free in CONNECTED or DISCONNECT_PENDING states. After
free calls disconnect, there may be a pending event,
in which case the providers dapls_ib_qp_free will block
accordingly and handle pending events.
Signed-off by: Arlin Davis ardavis@ichips.intel.com
Arlin Davis [Mon, 11 Feb 2008 22:50:33 +0000 (14:50 -0800)]
The OFA dapl provider is checking for incorrect return code
from rdma_bind_addr and rdma_listen calls. This causes an error
to be returned back to the consumer instead of correctly
incrementing the seed port and re-calling the OFA provider
until a valid port is issued. The seed value (1000) is also
incorrect and should start a non-privledged port (1024) to
avoid EPERM errors when seeding the starting port value.
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>
Arlin Davis [Thu, 24 Jan 2008 00:40:48 +0000 (16:40 -0800)]
dapltest does not include definitions for inet_ntoa.
At load time the symbol was resolved but with the
default definition of int, instead of char*, it caused
segfault. Add correct include files in dapl_mdep_user.h
for linux.
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>
Arlin Davis [Wed, 23 Jan 2008 22:25:21 +0000 (14:25 -0800)]
Fix for uDAPL v2 using extended operation. After extension completion,
the DTO cookie must be checked for type before deallocating to handle
inbound immediate data in receive. The sample dtestx client will fail
when running loopback if the rdma immediate is received from remote
before the rdma immediate request completion fires.
Bug causes following dtestx client error:
dat_ib_post_rdma_write_immed
returned DAT_INSUFFICIENT_RESOURCES : DAT_RESOURCE_MEMORY
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>