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>
Arlin Davis [Fri, 4 Jan 2008 16:32:39 +0000 (08:32 -0800)]
Windows specific -
IBAL support in evd_create
Build IB extensions by default
Common code -
check return status, evd_free, evd_wait
add dapl_event_str function
definitions for dat_os_library_error, dat_os_ungetc
Signed-off by: Stan Smith <stan.smith@intel.com>
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>
Arlin Davis [Fri, 4 Jan 2008 16:31:27 +0000 (08:31 -0800)]
Windows specific -
Add dapl_ep fields ibal_cm_handle, recv_disc, sent_disc for IBAL provider
Support for direct object on CQ
INIT and FINI changes
setup dat.conf default path, fix sr parsing
Common code -
Add Stan Smith as contributor
O/S independent dat_os_library_error()
Signed-off by: Stan Smith <stan.smith@intel.com>
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>
Arlin Davis [Tue, 11 Dec 2007 22:44:24 +0000 (14:44 -0800)]
2/2 uDAPL changes to sync common code base with WinOF
- add DAT_API to specify calling conventions (windows=__stdcall, linux= )
- cleanup platform specific definitions for windows
- c++ support
- add handle check macros DAT_IA_HANDLE_TO_UL and DAT_UL_TO_IA_HANDLE
Arlin Davis [Tue, 11 Dec 2007 22:43:05 +0000 (14:43 -0800)]
1/2 uDAT changes to sync common code base with WinOF
- add DAT_API to specify calling conventions (windows=__stdcall, linux= )
- cleanup platform specific definitions for windows
- c++ support
- add handle check macros DAT_IA_HANDLE_TO_UL and DAT_UL_TO_IA_HANDLE
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>
Signed-off by: Stan Smith <stan.smith@intel.com>
Arlin Davis [Tue, 16 Oct 2007 21:23:17 +0000 (14:23 -0700)]
Fix dtest to build properly with extensions.
Modify dat.h dat_event to include event_extension_data[8].
Extend struct dat_event outside of extension build
switch to enable non-extended applications to work
with extended libraries. Otherwise, there is a potential
for the event callee to write back too much event data
and exceed callers non-extended event buffer.
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>
Arlin Davis [Tue, 16 Oct 2007 21:10:52 +0000 (14:10 -0700)]
Use inet_ntoa instead of open coding it. IP addresses were being
reversed on PowerPC.
On PowerPC the timebase ticks at a different frequency to the CPU.
dapltest currently assumes a 1:1 relationship, and gives bogus values
when scaling timebase to real time.
To fix this, look at the timebase field in /proc/cpuinfo instead. To
keep things consistent with x86, scale that value to MHz.
Arlin Davis [Tue, 16 Oct 2007 21:09:56 +0000 (14:09 -0700)]
Use inet_ntoa instead of open coding it. IP addresses were being
reversed on PowerPC.
On PowerPC the timebase ticks at a different frequency to the CPU.
dapltest currently assumes a 1:1 relationship, and gives bogus values
when scaling timebase to real time.
To fix this, look at the timebase field in /proc/cpuinfo instead. To
keep things consistent with x86, scale that value to MHz.