stansmith [Thu, 14 May 2009 17:13:07 +0000 (17:13 +0000)]
[WinOF] support additional OFED Diags (winverbs_OFED.inc)
ibqueryerrors iblinkinfo saquery sminfo smpdump smpquery venstat ibportstate perfquery mcm_rereg_test
libibnetdisc
cleanup makebin.bat with single env var defs of what's to be copied.
ipoib.inc - no ND for ia64
shefty [Tue, 12 May 2009 17:25:44 +0000 (17:25 +0000)]
MAD: fix issues routing vendor MADs
Only dispatch received vendor defined MADs to the HCA driver if the
management class is one of the MLX vendor defined classes.
When dispatching MADs locally that are not handled by the HCA driver,
copy the sent MAD data into the received MAD buffer. Also initialize
the address information of the dispatched MAD, so that replies can be
routed correctly back to the sender. If a MAD is not handled by the
HCA driver and cannot be dispatched, return the MAD to the MAD pool
to avoid leaking MADs.
Finally, we simplify the MAD dispatch code.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2174 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 12 May 2009 17:23:03 +0000 (17:23 +0000)]
mlx4/mthca: define common vendor mgmt class
Replace the separate MLX4 and MTHCA vendor MAD classes with common
MLX vendor classes. This more easily allows us to determine if a vendor
defined management class should be routed to the HCA driver or dispatched
to a MAD client.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2172 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 12 May 2009 17:21:47 +0000 (17:21 +0000)]
winmad: support registration for unsolicited MADs
To support ibping, winmad needs to support registering for unsolicited
MADs. We just need to change the MAD service context from referencing
the WMProvider to the WMRegistration.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2171 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 12 May 2009 17:17:54 +0000 (17:17 +0000)]
mad: deregister MR earlier in destroy path
When restarting the stack, the MAD pool tries to deregister
its memory during the cleanup phase. This results in an
error because of an invalid h_mr handle. Fix the error by
deregistering the memory during the destroying callback.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2170 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 12 May 2009 17:16:33 +0000 (17:16 +0000)]
ib/cm: update port attributes earlier in destruction path
The CM tries to modify the port attributes during the cleanup
phase of port cep destruction. However, if the stack is
being brought down, by the time ib_modify_hca is called, the
h_ca handle is invalid.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2169 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 12 May 2009 17:14:08 +0000 (17:14 +0000)]
mlx4: change prints from error to information
TRACE_LEVEL_ERROR is intended for "Severe errors". Change
ref/deref interface and DriverEntry exit log messages from
error to informational only. This avoids displaying
misleading "***ERROR***" messages on the debug terminal.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2168 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
leonidk [Tue, 12 May 2009 13:24:37 +0000 (13:24 +0000)]
[HW, WvVerbs] Pass through the user's specified max inline data value when creating a QP.
Currently, if the user specifies a value, it gets ignored when the QP is created. The inline data value supported is then returned to the user, which may be less than requested.
This fixes a failure running dtest over mthca adapters. Mlx4 adapters end up working for userspace apps because the max_inline_data is passed from the UVP to the kernel via the UMV buffer. However, for completeness, fixup kernel calls for QP creation from IBAL for mlx4.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2166 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
leonidk [Tue, 12 May 2009 13:05:24 +0000 (13:05 +0000)]
[INC, WinVerbs] Define additional async event types for GID, LID, PKey, and SM changes. These are reported by winverbs, and at least appear to be handled by the HCA drivers.
This avoids converting LID change events seen by the mlx4 driver into local fatal errors.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2165 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Wed, 6 May 2009 06:11:14 +0000 (06:11 +0000)]
ND: fixup build.txt
Update the build.txt document for building ulp/nd.
Replace use of ND_INC and ND_INC_S variables with a single, user defined
ND_SDK_PATH environment variable. The change makes it consistent
with the existing PLATFORM_SDK_PATH variable.
The makefile checks for ND_SDK_PATH, rather than ND_INC when determining if ND
should be built. ND_INC indicates that the SDK has been installed, but is not
useful for building in the WDK.
The hard-coded paths in the ND sources file are removed, since those paths are
specific to individual installations. PLATFORM_SDK_PATH_S is replaced with
the existing PLATFORM_SDK_PATH variable.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2155 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Wed, 6 May 2009 06:06:21 +0000 (06:06 +0000)]
We need to return all MADs to IBAL before calling close_al. To protect
against queuing MADs during deregistration, set the MAD service handle
to NULL when deregistering and check that it is still valid before queuing
any received MADs.
This fixes a hanging when using ctrl-C to kill a process running ibping.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2152 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
leonidk [Mon, 4 May 2009 12:42:20 +0000 (12:42 +0000)]
[IBAL] fix memory leak on power down/power up flow. [mlnx: 4289]
port_mgr_port_add() allocates a port_pnp_ctx_t context, which is saved by IBAL to be used later in port_mgr_port_remove().
But in hibernation flow port_mgr_port_remove() doesn't release this context which causes IBBUS memory leak.
It was trapped by Verifier during WHQL Common Scenario Stress test.
leonidk [Sun, 3 May 2009 12:47:37 +0000 (12:47 +0000)]
[IBAL] crash on IBBUS disabling while mad traffic. [mlnx: 4275]
__ioc_query_sa takes references on IOC PnP service before sending the node and path_record requests.
But these references get released at the end of __node_rec_cb and __path_rec_cb, while __process_sweep routine, which performs the IOU sweeping, is just scheduled to run in an async thread.
If the test happens to unload the driver after __node_rec_cb and __path_rec_cb and before __process_sweep started to run, IOC PnP service gets released and __process_sweep crashes.
The patch takes a reference on IOC PnP service before scheduling a thread for __process_sweep and releases the reference at the end of __process_sweep.
(Pay attention, that __process_sweep schedules a thread for itself twice while moving through its FSM:
SWEEP_IOU_INFO --> SWEEP_IOC_PROFILE --> SWEEP_SVC_ENTRIES --> SWEEP_COMPLETE)
winverbs: release CM interface only once per reference
The CM interface is not bound to a device, and is only acquired once by the winverbs driver. Release the CM interface only once after all devices have been removed, not once per hardware device.
This should fix issues enabling/disabling HCA drivers with multiple HCAs present in a single system.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2141 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
[WinOF] dapl socket cm name change dapl2-scmd.dll --> dapl2-ofa-scmd.dll
Handle the absence of ND components: be verbose, don't fail.
Skip .cdf file copy.
Use the latest comp_channel changes to fix event reporting and avoid
hangs when destroying resources. We need to track when closing
devices to make sure that events are canceled, and avoid issuing
new wait calls.
Minor correction to the cmatose test app to avoid busy polling of the CQ,
which can prevent other threads from running. This leads to connection
failures when running more clients than there are CPUs in the system.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2130 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
Use the latest comp_channel changes to fix event reporting and avoid
hangs when destroying resources. We need to track when closing
devices to make sure that events are canceled, and avoid issuing
new wait calls.
Rename windows specific calls to include 'w' after the ibv prefix to
avoid any potential future conflicts and clearly indicate to a caller
that they're using a windows only call.
Use the common ntohll definition.
Device names are changed from ibv_device_<guid> to ibv_device_X, where
X is an index (0, 1, 2, etc.). This gives devices across the cluster
the same name, which is closer to IBAL and OFED device naming.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2129 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
winverbs: fixes to support OFED compatibility libraries and ND
Winverbs fixes based on testing the DAPL openib_scm provider, which uses the
libibverbs compatibility library.
Simplify endpoint connect locking and code structure so it's clear when the
user's request is completed.
Add const to TranslateAddress to avoid a compiler warning when building the
ND provider.
Renumber CQ notification types to align with underlying code.
Take the RemoteAddress in a send work request in host order, to align with
the UVP. (This will be revisited, but is required for RDMA over winverbs to
work for now.)
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2128 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
The previous version of the completion channel was racy and would
occasionally lose events, resulting in users blocking indefinitely
if no new events occurred. The most sure fix for this is to add
a thread to the completion manager that reaps events from an IO
completion port and dispatches them to the correct completion
channel. This results in a 1-2% performance hit in libibverbs
bandwidth tests that wait on CQ, but actually works.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2127 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
ibal/cm: reference private data in received MAD not stored in CEP
To avoid any potential synchronization issues with changes to the private
data in the CEP, reference the private data in the received MAD when
formatting CM events.
Fix the size of the reject private data.
This only affects users of the newer IB CM interface, which is only winverbs
at this point.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2125 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
etc/dlist: add simple userspace doubly-linked list abstraction
Add a very simple implementation for managing a doubly-linked list.
This implementation uses only a 'list entry' structure for both the
list and items on the list, versus separate structures like complib.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2121 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
[NetworkDirect] Enable Network Direct IB provider builds.
if HPC SDK installed (ND_INC defined) then build for x86 & x64 - no IA64 ND support until ND over Winverbs.
if !HPC SDK installed, skip ND provider build for all architectures.