shefty [Wed, 30 Sep 2009 22:35:57 +0000 (22:35 +0000)]
winverbs: store devices in order that they are added
Maintaining and reporting devices in the same order that they are seen by the driver assists users in mapping IPoIB devices to verbs.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2481
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 30 Sep 2009 22:33:27 +0000 (22:33 +0000)]
libibverbs: delete MR when unregistering
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2480
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 30 Sep 2009 22:01:34 +0000 (22:01 +0000)]
dapl: updated to commit
23445bbbd3a09f7f5e666a000d5c7c3b22dd95b3
plus a couple of patches to make it build
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2478
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 30 Sep 2009 21:56:11 +0000 (21:56 +0000)]
ib-mgmt:
update to commit
0abb828175450b873521d4917c3edb0a7b57c337
plus fixes to build that are submitted back upstream
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2477
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
tzachid [Thu, 24 Sep 2009 13:15:18 +0000 (13:15 +0000)]
[ibbus] Remove setting of the cid from the QP due to compilation error.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2467
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
tzachid [Thu, 24 Sep 2009 09:33:33 +0000 (09:33 +0000)]
[ibbus] Add support for APM using the CM to pass messages.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2466
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
tzachid [Thu, 24 Sep 2009 09:05:23 +0000 (09:05 +0000)]
[WSD] Add basic support for APM to wsd.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2465
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 23 Sep 2009 21:46:19 +0000 (21:46 +0000)]
winverbs: fix crash accessing freed memory from async thread
If an application exits while asynchronous accept processing is queued,
it's possible for the async processing to access the IbCmId after it has
been freed. A similar problem to this was fixed that dealt with accessing
the verbs QP handle.
A simpler, more generic solution to this problem is to handle application
exit in the same manner as device removal, and lock the winverb provider
lookup lists with exclusive access. Asynchronous operations that are in
process will run to completion, and future operations will be blocked until
the provider cleanup thread has completed. Once they run, they will fail
to acquire a reference on the desired object, which should result in a
graceful failure.
This avoids more complicated locking to use handles belonging to the lower
level code. If a reference on an object can be acquired, the handle will
be available for use until the reference is released. To handle IB CM
callbacks, additional state checking is required to avoid processing
CM events when we're trying to destroy the endpoint.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2462
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 23 Sep 2009 21:45:42 +0000 (21:45 +0000)]
winverbs/libibverbs: use private heap space
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2461
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 23 Sep 2009 21:38:40 +0000 (21:38 +0000)]
librdmacm: add back in missing cma_dev_cnt
Initialization lost when moving patches from branch to trunk.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2460
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 23 Sep 2009 21:35:19 +0000 (21:35 +0000)]
librdmacm: allow for graceful cleanup of verbs
Have librdmacm release libibverbs resources when they are no longer in use. This provides for more graceful cleanup of verbs resources.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2458
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 23 Sep 2009 21:22:02 +0000 (21:22 +0000)]
libibumad: implement 'dump' functions
print mad information in 'dump' routines previously left unimplemented
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2457
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 23 Sep 2009 21:20:02 +0000 (21:20 +0000)]
etc/search: handle malloc failures and fix build warnings
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2455
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Fri, 18 Sep 2009 23:19:41 +0000 (23:19 +0000)]
[DAPL2] sync with WinOF 2.1 branch
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2451
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Fri, 18 Sep 2009 21:24:01 +0000 (21:24 +0000)]
[WinOF] detect possible ConnectX HCA driver load failure and suggest examination of system event log to ascertain if invalid firmware is an issue.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2447
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 17 Sep 2009 22:41:17 +0000 (22:41 +0000)]
[WinOF,ETC] When building with latest WDK, turn off OACR (Auto-Code-Review) as it slows down the build process.
Remove extra 'call' when invoking bldwo.bat from buildrelease.bat.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2446
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 17 Sep 2009 16:52:37 +0000 (16:52 +0000)]
[WinOF] Enable Windows 7 & Svr 2008 R2 build support by making WDK 7600.16385.0 the default build env when using winof\buildrelease.bat to build a release; only affects builds using buildrelease.bat script.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2445
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 17 Sep 2009 16:46:40 +0000 (16:46 +0000)]
[WinOF] Oops...used Wix 3.0 Platform identifiers in Wix 2.0 environment. Use 'Intel' instead of 'x86' until Wix 3.0 transition.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2444
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
tzachid [Thu, 17 Sep 2009 16:43:18 +0000 (16:43 +0000)]
[HW] fixes to APM support: missed some lines and apm_state was not converted into low-driver format
Signed off by: leonid@mellanox.co.il
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2443
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 16 Sep 2009 21:54:33 +0000 (21:54 +0000)]
[WinOF] Identify platform processor architecture [32/64 bit] for which the installer is targeted. Use the new include file WinOF\Wix\common\UserInterface.inc to define the WIX UI for all installer variants.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2441
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 16 Sep 2009 21:45:05 +0000 (21:45 +0000)]
[WinOF] reduce Wix installer (.msi file generation) complexity & redundancy by moving bulk of Makefile to a parameterized WinOF\Wix\common\Makefile.inc
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2440
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Wed, 16 Sep 2009 16:16:08 +0000 (16:16 +0000)]
[IBAL] use non-pageable memory to prevent possible problems on power down. [mlnx: 4809]
Suggested by Hobin Lee (Xsigo)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2438
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:40:42 +0000 (23:40 +0000)]
[WinOF] remove redundant 'root' folder specifications as TARGETDIR is the %SysVolume% 'root' (aka 'slash'). Identify 64-bit installers along with installing WinOF into ProgramFiles64 folder which == ProgramFiles; install WinOF in the same folder for all architectures.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2437
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:34:20 +0000 (23:34 +0000)]
[WinOF] reflect WinOF is no longer installed in %ProgramFiles(x86)% on 64-bit architectures, use %ProgramFiles% for all.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2436
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:30:50 +0000 (23:30 +0000)]
[WinOF] Reflect WinOF installs into %ProgramFiles%. Use signature from from new OFA digital-ID certificate.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2435
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:28:24 +0000 (23:28 +0000)]
[WinOF/DAPL2] reflect WinOF now installs into %ProgramFiles% on all systems, not %ProgramFiles(x86)%.
Move Dat/Dapl 1.1 providers to the end of the list for those MPIs which use the 1st available provider; ends up defaulting to DAT/DAPL V2.0. Thus begins the phasing out of DAT/DAPL 1.1 support.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2434
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:25:25 +0000 (23:25 +0000)]
[WinOF] Streamline driver uninstall and cleanup to play nicely with MSFT PNP; believe PNP will cleanup .inf referenced files when device references have reached zero (shutdown ND & WSD services prior to PNP device removal).
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2433
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:19:33 +0000 (23:19 +0000)]
[WinOF] Place librdmacm.dll in %windir% folder along with the rest of the WinOF libs. Review folder usage to consider using system32/syswow64 at a later date.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2432
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:17:23 +0000 (23:17 +0000)]
[WinOF] Include Trusted Publishers certificate feature in Windows-7 x64 (aka Server 2008 R2).
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2431
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:15:50 +0000 (23:15 +0000)]
[WinOF] do not force OpenSM service to be 32-bit
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2430
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 15 Sep 2009 23:14:27 +0000 (23:14 +0000)]
[WinOF] remove correct WinOF shortcut folder & rename WinOF start menu Command link to 'WinOF Command' so as not to confuse the Svr 2008 start menu auto include entries.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2429
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Thu, 3 Sep 2009 12:56:20 +0000 (12:56 +0000)]
[MLX4] add prints to Event Log in case of HCA resetting. [mlnx: 4723]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2422
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 2 Sep 2009 16:43:38 +0000 (16:43 +0000)]
[IBBUS,COMPLIB] Eliminate re-initialization of the stop lock. Crash reported upon running “System Common Scenario” WHQL test with our stack. The crash: C4 (0xd7), which means Driver Verifier revealed a re-initializing of Remove Lock.
Signed-off by Leonid Keller leonid@mellanox.co.il
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2417
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 16:28:10 +0000 (16:28 +0000)]
dapl: fix build from comp_channel changes
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2416
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 15:35:34 +0000 (15:35 +0000)]
etc/inet: use native inet_ntop and inet_pton on windows 6.0 and above
inet_ntop and inet_pton were added to windows 2008 and above. Only implement for windows 2003 or older.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2415
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 15:33:42 +0000 (15:33 +0000)]
linux/search.h: add tsearch tree abstraction
Implement a tsearch, tfind tree abstraction for use by platform independent code. Internally, this uses complib on windows platforms.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2414
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 15:31:15 +0000 (15:31 +0000)]
linux/socket.h: add header file
Define socket.h header file for use by platform independent code. It simply wraps an include around winsock2.h.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2413
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 15:30:03 +0000 (15:30 +0000)]
etc/comp_channel: add support for channel sets
To better mimic Linux fd support, add the concept of channel sets to completion channels. This is needed to minimize changes in platform independent uDAPL code.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2412
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 15:08:17 +0000 (15:08 +0000)]
winverbs: fix race in async connect handling
If an application calls Connect or Accept, their IRP is queued to a
work queue for asynchronous processing. However, if the application
crashes or exits before the work queue can process the IRP, the cleanup
code will call WvEpFree(). This destroys the IbCmId.
When the work queue finally runs, it can access a freed IbCmId.
This is bad. A similar race exists with the QP and the asynchronous
disconnect processing. The disconnect processing can access a
the hVerbsQp handle after it has been destroyed.
Additionally, in all three cases, the IRPs assume that the WV provider
is able to process IRPs. Specifically, they require that the index
tables maintained by the provider are still valid. References must
be held on the WV provider until the IRPs finish their processing to
ensure this.
Fix invalid accesses to the IbCmId and hVerbsQp handles by locking
around their use after valid state checks. In the case of the QP, we
add a guarded mutex for synchronization purposes and use that in place
where the PD mutex had been used.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2410
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 15:07:09 +0000 (15:07 +0000)]
winmad: return correct error code
Winmad returns an incorrect error code when using send or receive in synchronous mode. The OFED MAD code ends up working, since it checks for errors by comparing the return value < 0. In this case, the return value us positive, when it should be zero. Simplify the code and return the correct error code.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2409
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Wed, 2 Sep 2009 15:06:56 +0000 (15:06 +0000)]
[HW] allow retrieving CA attributes with pageable memory
Modify the HCA drivers to support querying for attributes using a pageable buffer. Since the query calls block, it seems appropriate for the calls to allow pageable memory, rather than forcing the user to allocate a non-paged buffer in order to obtain a list of attributes. The problem stems from the HCA drivers accessing a user's buffer after acquiring a spinlock that raise IRQL.
This fixes kernel crashes with both the winmad and winverbs drivers.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2408
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 2 Sep 2009 14:56:19 +0000 (14:56 +0000)]
winmad: allocate registration struct from NonPagedPool
Apparently data structures that are accessed from within MAD callbacks must be
allocated from NonPagedPool. Allocated the WM_REGISTRATION structure from non
paged pool.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2403
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Sat, 29 Aug 2009 00:04:11 +0000 (00:04 +0000)]
[WinOF] All installs now install into 'Program Files' and not 'Program Files (x86)'..Cleanup references to \Program Files (x86)\WinOF.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2389
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Fri, 28 Aug 2009 19:15:48 +0000 (19:15 +0000)]
winverbs/winmad: use ExFreePoolWithTag
To help match memory allocations with free, replace ExFreePool with
ExFreePoolWithTag.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2387
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Thu, 27 Aug 2009 18:51:37 +0000 (18:51 +0000)]
winverbs: free port array
Fix a memory leak. We need to free the port array, which is allocated separately from the device structure.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2386
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 26 Aug 2009 16:47:57 +0000 (16:47 +0000)]
winverbs: EP is not in a provider list, so don't try to remove it
Endpoints are not maintained in a list associated with a provider. The list
entry for an endpoint is used to track connection requests with listens. When
an endpoint is unassociated from a listen, it is removed from the listen list.
Trying to remove it from a list during provider cleanup results in a duplicate
removal, can corrupt the listen list, and may access freed memory.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2385
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 26 Aug 2009 16:47:11 +0000 (16:47 +0000)]
winverbs: ensure that event and mutex memory are resident
The winverbs PD structure contains both an event and a guarded mutex. Both must
be allocated as part of resident memory, or vague system corruptions may occur
if their memory is paged out.
The fix is to allocate the PD structure from NonPagedPool.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2384
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 26 Aug 2009 16:45:53 +0000 (16:45 +0000)]
librdmacm: fix race in ucma_init()
There's a potential race with ucma_init() and calls that check whether
the library is ready for use. For example, in rdma_create_id, this
check is performed:
hr = cma_dev_cnt ? 0 : ucma_init();
if (hr) {
return hr;
}
Since the check for cma_dev_cnt is outside of any synchronization, if it
is non-zeroy, then the code will assume that initialization is complete.
However, ucma_init() can set cma_dev_cnt to non-zeroy before it has finished
executing. The full impact of this race is unknown, but it can't be good.
In the worst case, the application may crash.
Fix this by ensuring that all initialization is complete before cma_dev_cnt
is incremented. Note that ucma_init() provides synchronization to protect
against duplicate threads handling init. The cma_dev_cnt check is used to
avoid synchronization on multiple calls into the library after initialization.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2383
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 26 Aug 2009 16:44:24 +0000 (16:44 +0000)]
ofed libs: prevent double initialization of critical section
DllMain is called multiple times for a given process. Prevent double
initialization of critical sections by only initializing it during process
attach. This avoids corrupting the critical section while it may be in use.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2382
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 19 Aug 2009 21:49:50 +0000 (21:49 +0000)]
[WIX] update usage instructions to reflect WinOF is now under Trunk\ and no longer under branches\ . Include win7\x64\wof.wxs as I missed it in the last commit.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2370
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 19 Aug 2009 21:44:40 +0000 (21:44 +0000)]
[DAPL2] %ERRORLEVEL% inside a for loop does not evaluate as expected; change to !ERRORLEVEL!
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2368
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 19 Aug 2009 21:41:48 +0000 (21:41 +0000)]
[DOCS] Update DAPL provider text w.r.t. names in DAT.conf file.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2367
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Tue, 18 Aug 2009 19:22:47 +0000 (19:22 +0000)]
ib/port_attr: report active width as part of port attributes
Return the active width in the port attributes reported by the HCA.
Because the kernel and user space share the same source
files, to avoid breaking the ABI, rename link_width_supported
field to active_width and use that field to return the value.
link_width_supported is currently uninitialized and in the
svn tree unused, so repurposing the field should have minimal
impact. However, this change will break the API.
Applications that reference the link_width_supported field
from struct _ib_port_attr will require a minor update if recompiled.
Update winverbs to report this value and fill in other
missing fields from the port attribute structure. This fix
allows reporting the correct values through the libibverbs
port and ibv_devinfo example utility.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2366
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
tzachid [Tue, 18 Aug 2009 14:47:56 +0000 (14:47 +0000)]
[ipoib 6] Updated driver to the latest changes.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2365
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Mon, 17 Aug 2009 23:17:41 +0000 (23:17 +0000)]
[IPoIB] IPoIB PXE boot support: Clear remainder of chaddr
The IPoIB PXE boot firmware (gPXE) now sends the 8-byte port GUID in
the DHCP chaddr field. WinOF replaces the first 6 bytes of chaddr
with the Ethernet-style MAC address, but leaves the remainder
untouched. This results in trailing garbage after the Ethernet-style
MAC in the modified chaddr.
Fix by explicitly zeroing the remainder of chaddr.
Signed-off-by: Michael Brown <mcb30@etherboot.org>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2364
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Mon, 17 Aug 2009 23:11:00 +0000 (23:11 +0000)]
[IBAT] allow simultaneous IBAT device access from user mode by adding RW sharing attributes to CreateFileW() call. signed off by stan.smith@intel.com
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2363
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Mon, 17 Aug 2009 23:06:55 +0000 (23:06 +0000)]
[LIBRDMACM] retry IBAT call on E_PENDING return. Signed off by Sean.Hefty@intel.com & stan.smith@intel.com
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2362
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Sun, 16 Aug 2009 14:17:29 +0000 (14:17 +0000)]
[MLX4] on catastrophic error, dump error buffer before reset. [mlnx: 4636]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2358
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Sun, 16 Aug 2009 14:12:31 +0000 (14:12 +0000)]
[MLX4] added debug prints in case of errors. [mlnx: 4664]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2357
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Sun, 16 Aug 2009 14:12:09 +0000 (14:12 +0000)]
[MLX4] bug fix in error flow: doesn't return error on allocation failure. [mlnx: 4663]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2356
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Sun, 16 Aug 2009 14:06:23 +0000 (14:06 +0000)]
[IBAL] fix to 2226. cause an asynchronic event to be handled immediately (and not after SMI_POLL_INTERVAL, which is 20 secs) [mlnx: 4651]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2355
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Sun, 16 Aug 2009 13:58:05 +0000 (13:58 +0000)]
[MLX4] added support for NOP operation. [mlnx: 4579]
One can now post WQE with WR_NOP operation just to get interrupt on completion.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2354
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Sun, 16 Aug 2009 12:40:46 +0000 (12:40 +0000)]
[ND provider] This patch is a fix to 2333. It removes a facility to define MaxDataInlineSize from application, because it breaks MS API
Improved latency of ND provider by using INLINE send
This patch adds usage of INLINE DATA facility of Mellanox HCAs for improving latency of ND provider.
Here are the ideas of the patch:
- by default, ND provider will create QP with inline data of 160 bytes;
(this can enlarge user's QP size)
- one can change this default by defining environment variable IBNDPROV_MAX_INLINE_SIZE;
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2352
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 13 Aug 2009 17:34:29 +0000 (17:34 +0000)]
[IPOIB] Prevent a BSOD which happens when restarting the opensm more than once (if the local endpoint was not in the lid_endpts list). signed off by stan.smith@intel.com & Tzachi Dar [tzachid@mellanox.co.il]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2351
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Mon, 10 Aug 2009 18:52:32 +0000 (18:52 +0000)]
reapply overwritten commit 2340
not sure what happened, but commit 2340 was lost
The IP version number is in the upper 4 bits. It is set correctly, but not read out correctly.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2349
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Sat, 8 Aug 2009 00:21:54 +0000 (00:21 +0000)]
winverbs/driver: fix check for IP version
The IP version is in the upper 4 bits of an 8 bit field. It is set
correctly, but not ready out correctly. The result is that an IPv4
address reported to user space is listed as an IPv6 address instead.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2340
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Sat, 8 Aug 2009 00:20:44 +0000 (00:20 +0000)]
winverbs/driver: change status for rejected connections
Complete connection requests with STATUS_CONNECTION_REFUSED rather
than STATUS_REQUEST_NOT_ACCEPTED for rejected connections. This aligns
the status value with ND.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2339
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Fri, 7 Aug 2009 20:16:36 +0000 (20:16 +0000)]
[DAPL2] Sync with OFED DAPL 2.0.21 src release
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2337
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Fri, 7 Aug 2009 18:48:52 +0000 (18:48 +0000)]
ibal/cm: allow RDMA writes for QP attributes by default
Enable remote RDMA writes as the default QP attributes for INIT
transitions. Previously, RDMA writes were only enabled if the CM
messages carried a responder resources > 0. However, responder
resources indicates whether RDMA reads/atomics should be enabled,
not RDMA writes.
Without this patch, users of winverbs that connect in-band that
want to perform RDMA writes without performing RDMA reads will
see QP errors when performing writes.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2334
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Thu, 6 Aug 2009 17:13:25 +0000 (17:13 +0000)]
[ND provider] improved latency of ND provider by using INLINE send
This patch adds usage of INLINE DATA facility of Mellanox HCAs for improving latency of ND provider.
Here are the ideas of the patch:
- by default, ND provider will create QP with inline data of 160 bytes;
(this can enlarge user's QP size)
- one can change this default by defining environment variable IBNDPROV_MAX_INLINE_SIZE;
- an ND application, while creating QP, can define the necessary INLINE DATA size; this value takes precedence over the default one.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2333
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 5 Aug 2009 23:44:28 +0000 (23:44 +0000)]
winverbs/status: add status definition for IO timeout
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2332
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 5 Aug 2009 23:43:10 +0000 (23:43 +0000)]
libibverbs/comp_mgr: fix hang during destruction
The completion manager abstraction can hang during cleanup. The hang
occurs when the user calls CompManagerCancel before calling CompManagerClose,
and the user is not waiting for events. In this case, the completion manager
thread will pull the cancel request from the IO completion port and queue it
with the manager. When CompManagerClose is called, it calls CompManagerCancel
to signal the thread to check the running state. However, the completion
manager's event structure is still marked busy from the user's CompManagerCancel
call.
The result is that the completion manager thread does not receive the
signal to check the running flag and remains asleep. Fix this by using a
different completion entry to signal the thread during destruction than that
used to cancel a CompManagerPoll event.
This fixes occasional hangs running dapltest with both the rdma_cm and socket
cm providers.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2329
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 4 Aug 2009 17:23:22 +0000 (17:23 +0000)]
[WINOF\HPC] update example scripts - run from C:\WOF
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2328
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Sat, 1 Aug 2009 01:02:29 +0000 (01:02 +0000)]
netdirect/winverbs: fixes to run nd sample tests
Now that the WV ND provider can be installed, the ND sample tests can be run. This provides various fixes to get at least a couple of the sample tests running.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2324
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Sat, 1 Aug 2009 01:01:57 +0000 (01:01 +0000)]
libibverbs: add reference counts to track CQ events
We need to track CQ events to block destroying CQ objects until all outstanding events have been acknowledged. Otherwise, the caller could reference freed memory after calling ibv_get_cq_event.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2323
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Fri, 31 Jul 2009 16:50:21 +0000 (16:50 +0000)]
winverbs: fix cleanup in error handling cases
Running the ndmw test results in a crash in the winverbs driver. The
crash is caused by improper cleanup in the winverbs driver as a result
of a failure trying to allocate a memory window.
In studying the crash, the same situation could arise if other objects
also fail to be created (QPs, CQs, PDs, etc.) To fix the crash and
simplify the code, explicit calls to used to increment the reference
count on referenced objects, rather than simply holding onto the
reference that was acquired when the object was validated. (The latter
is slightly more efficient, but results in less maintainable code
once any fix is applied.)
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2320
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 28 Jul 2009 23:31:30 +0000 (23:31 +0000)]
[ND] missed the root of the fake.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2317
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 28 Jul 2009 23:29:51 +0000 (23:29 +0000)]
[ND] remove old, unused fake build folders from the days before we could build ND from src. makefile.inc modified to reflect folder changes.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2316
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 28 Jul 2009 19:06:35 +0000 (19:06 +0000)]
[WINOF] add new HPC example scripts; added new WIX include file to create %ProgramFiles(x86)%\WinOF\HPC install folder and HPC examples scripts; change wof.wxs to include ..\..\HPC\HPC.inc .
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2315
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 28 Jul 2009 18:50:15 +0000 (18:50 +0000)]
[WINOF] move HPC script examples into HPC specific folder.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2314
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 28 Jul 2009 18:45:48 +0000 (18:45 +0000)]
[WINOF] Collect HPC related install script examples into one place
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2313
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Mon, 27 Jul 2009 16:56:16 +0000 (16:56 +0000)]
nd/winverbs: fix source file to reference correct export file
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2311
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Tue, 21 Jul 2009 18:10:34 +0000 (18:10 +0000)]
[DOCS] Document ndinstall cmd IF again supports a default provider IBAL 'ndinstall -i' defaults to IBAL provider.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2308
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 16 Jul 2009 22:58:22 +0000 (22:58 +0000)]
[WINOF] Revert back to original ndinstall.exe invocation as a 'default' ND provider is now provided.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2306
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 16 Jul 2009 22:56:45 +0000 (22:56 +0000)]
[DAPL2] Implement a malloc() threshold for the completion reaping byte vector allocation in functions:
DT_handle_send_op, DT_handle_rdma_op & DT_handle_recv_op.
When allocation size is under the threshold, use a stack local allocation instead of malloc/free.
Move redundant bzero() to be called only in the case of using local stack allocation as DT_Mdep_malloc() already does a bzero().
Consolidate error handling return and free()check to a single point by using goto.
Signed-off-by: Stan Smith <stan.smith@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2305
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 16 Jul 2009 22:53:40 +0000 (22:53 +0000)]
[ND] reinstate '-i' to install 'default' ND service provider IBAL; reinstate '-r' to uninstall 'default' ND service provider; backwards compat.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2304
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Thu, 16 Jul 2009 22:51:26 +0000 (22:51 +0000)]
[ETC] process nonexistent optional switch arg @ EOL. signed off by stan.smith@intel.com
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2303
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Wed, 15 Jul 2009 21:53:54 +0000 (21:53 +0000)]
librdmacm: free event structure on failure
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2301
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 15 Jul 2009 19:56:37 +0000 (19:56 +0000)]
[WIX] Account for changes in ndinstall.exe cmd line interface.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2299
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 15 Jul 2009 19:54:00 +0000 (19:54 +0000)]
[TOOLS] repair ndinstall (installsp.c) return a proper exit code; removed unused variables; remove ifdef PERFMON_ENABLED code blocks per Fab's suggestion; reinstate '-l' options for compatibility with older versions (same as no args);ensure ndinstall -l or no-args return success;
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2298
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Wed, 15 Jul 2009 19:45:11 +0000 (19:45 +0000)]
[DOCS] Update manual.htm to reflect recent command line interface changes in ndinstall.exe
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2297
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Mon, 13 Jul 2009 18:29:54 +0000 (18:29 +0000)]
[MLX4] changed severity level for informational messages about Soft Reset from ERROR to INFO. [mlnx: 4568]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2293
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Mon, 13 Jul 2009 18:28:40 +0000 (18:28 +0000)]
[MLX4] added new Registry parameter for number of FC_EXCHs and added a sanity check, that the number of reserved QPs is less then all requested QPs. [mlnx: 4562]
It came to fix a bug: if the number of reserved QPs is greater then the number of QPs requested, the bug causes eventual allocation of reserved QPs, which is forbidden.
The bug happened due two reasons:
- absense of sanity check, comparing reserved and total number of QPs;
- a large built-in number of FC_EXCH QPs, which are not in use at all today.
The patch replaces the built-in value to Registry taken one and set it to O.
It also changes the number of MACs from 1 to 0 for there is no need in reservation for MACs.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2292
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Mon, 13 Jul 2009 18:24:01 +0000 (18:24 +0000)]
[MLX4] 1) added support for sending large multi-parameter messages to System Event Log. [mlnx: 4561]
2) improved the wording of several most popular messages.
To print to Event Log, one has to use the new function WriteEventLogEntryData().
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2291
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
leonidk [Mon, 13 Jul 2009 18:19:03 +0000 (18:19 +0000)]
[MLX4] added support to new device. [mlnx: 4473]
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2290
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Mon, 13 Jul 2009 16:42:36 +0000 (16:42 +0000)]
[WinOF] Remove disucssions for Server 2003 & XP w.r.t. selecting HCA device driver to hardware - DIFxApp/PNP simplifies and unifies HCA selection; user selects HCA vendor; Mellanox is the default.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2288
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Mon, 13 Jul 2009 16:35:01 +0000 (16:35 +0000)]
[DOCS] Simplify starting Service Manager discussion in starting OpenSM.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2287
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
stansmith [Mon, 13 Jul 2009 16:32:36 +0000 (16:32 +0000)]
[WinOF] White-space formatting.
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2286
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Fri, 10 Jul 2009 17:57:19 +0000 (17:57 +0000)]
ndinstall: update installer to support both IBAL and WV ND providers
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2284
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
shefty [Fri, 10 Jul 2009 17:56:19 +0000 (17:56 +0000)]
netdirect: add winverbs ND provider
Initial implementation. Compiles, but otherwise untested.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2283
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86