leonidk [Sun, 25 Jan 2009 09:32:03 +0000 (09:32 +0000)]
[MLX4] added MSI-X support to MLX4 driver.
This patch adds MSI-X support to MLX4 driver.
To remind, current driver creates 2 EQs (for commands/events and completions), which both use 1 legacy interrupt.
With this patch MLX4 requests (in inf file) 18 MSI-X interrupt vectors, spreaded across processors in round-robin way.
If the platform doesn't support MSI-X vectors, the driver uses legacy interrupts.
MSI-X support required some changes in the card reset mechanism, which are also found in the patch.
leonidk [Sun, 25 Jan 2009 09:22:12 +0000 (09:22 +0000)]
[CORE] bugfix in debug prints. [mlnx: 3573]
On x86 platform casting expression like
(LONG_PTR)p_obj
doesn't increase the size of pointer.
As a result printf() function - driven by %I64 size modifier - takes the next parameter as a second part of the previous one.
It causes a corrupted print at least and a crash at most.
The patch replaces %I64Ix fixed-size format modifier by the variable-sized %p one.
shefty [Sat, 24 Jan 2009 19:58:23 +0000 (19:58 +0000)]
librdmacm: provide OFED compatibility library.
Provide a port of librdmacm.
Because of the use of overlapped structures and events, the library
has a scalability limitation of about 60 connections. The scalability limit will be addressed in a subsequent version, once the needs of a real application are determined.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1879 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Sat, 24 Jan 2009 19:53:32 +0000 (19:53 +0000)]
The librdmacm uses the same devices that are usable with the libibverbs library.
Provide a method in libibverbs that allows librdmacm to use the same winverbs
provider as libibverbs.
Include fixes discovered testing the librdmacm port:
When a CQ is removed, its position in the completion channel is replaced by
the CQ at the end of the list, but the CQ that moves is not updated to
reflect its new location.
When a QP is created, we need to save the user's initial values before
querying for the QPN. Otherwise, the query call tries to access invalid data.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1878 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Sat, 24 Jan 2009 19:49:59 +0000 (19:49 +0000)]
Update the winverbs interface and library to add support for connection
establishment. The implementation supports XP, 2003, and 2008. Because
kernel support for IP is lacking in XP and 2003, the winverbs userspace
library performs address and route resolution, rather than relying on the
kernel driver to perform those operations.
The interface for datagram support was updated to match that used for
connections, but datagram support is not implemented at this time.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1877 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Sat, 24 Jan 2009 19:30:54 +0000 (19:30 +0000)]
Add support for connection establishment over IB through the winverbs kernel
driver. This depends on exporting the IB CM interface. Connections follow
the RDMA CM model.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1875 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Sat, 24 Jan 2009 19:15:03 +0000 (19:15 +0000)]
ib/cm: export cm only interface
To support WinVerbs and a future OFED libibcm compatibility library (requires
a new library and driver), export a new IB CM interface. The interface sits
above the existing communication endpoint (CEP) manager. This allows the
interface to export only IB CM functionality.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1874 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
stansmith [Thu, 22 Jan 2009 21:58:19 +0000 (21:58 +0000)]
[WinOF] unified msiexec cmd-line DGB=1 to use the same sDBG global for install & uninstall. Reworked dpinst_status() to intelligently output useful status information instead of assuming error only.
shefty [Tue, 20 Jan 2009 23:07:10 +0000 (23:07 +0000)]
winverbs.lib: remove from build
Removal of the listen.cpp and listen.h source files results in the winverbs library build breaking. The removal will occur, but it's only part of a patch to winverbs to handle listening. So, we either need to apply the rest of the patch or back out the changes to fix the build. Since the rest of the patch will be applied within the next couple of days, remove the library from the build until then.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1861 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 20 Jan 2009 21:35:44 +0000 (21:35 +0000)]
mlx4u.dll: initialize qp pointer before use
We need to initialize the qp pointer to NULL to avoid accessing some random memory location when polling for completions. Without this, calls to mlx4_poll_cq_array() can crash in mlx4_poll_one().
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1859 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 20 Jan 2009 21:34:40 +0000 (21:34 +0000)]
mthca/mlx4: add check to validate output data sizes
Only the hardware drivers know what size the output data buffer must be for ndi_modify_qp. Have the drivers verify that the provided data buffer is large enough.
This fixes a crash if (say, a buggy) userspace (library under development) does not provide a response buffer.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1858 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Tue, 20 Jan 2009 21:32:45 +0000 (21:32 +0000)]
ibal: remove unneeded typedefs
al_qp.h defines typedefs that are only used later in the same file. Remove the typedefs and just define the functions inline. This also prevents a duplicate typedef (with different types).
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1857 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
stansmith [Mon, 19 Jan 2009 19:43:35 +0000 (19:43 +0000)]
[WinOF]
CustomActions.vbs
rewrote/cleanup device uninstall to use 'devman driverfiles' instead of guessing what files are installed for each driver.
Added msiexec.exe cmd-line arg DBG=1 for install & uninstall - provide debug insights to what's going on.
wof.wxs
Remove ibinstaller.dll references
Prep for WinOF 2.1 Release
Remove erroneous file dup/copy for files installed via driver .inf
README_release.txt & Release_notes.htm
Prep for WinOF 2.1 release.
aestrin [Mon, 19 Jan 2009 17:16:19 +0000 (17:16 +0000)]
[ipoib cm] fix for fragmented UDP packet. Don't check UDP packet size if it is fragmented. Fragment size of large UDP packet could be less than udp_hdr size and shouldn't fail. (Submitted by Alex Naslednikov <xalex@mellanox.co.il>)
leonidk [Sun, 18 Jan 2009 13:47:55 +0000 (13:47 +0000)]
[MLTHCA] added polling mode support.
This patch is a second part of a workaround, added in rev. 1800 for MLX4.
It adds polling mode support for MTHCA.
This is needed for example in the case, when interrupts stop to be conveyed to the driver for some HW problem.
(Xsigo saw such case).
This patch additionally "actualize" the workaround (by off-commenting #if WORKAROUND_POLL_EQ) to enable polling mode without re-building the drivers.
Signed-off-by: James Yang [jyang@xsigo.com]
git-svn-id: svn://openib.tc.cornell.edu/gen1@1841 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Thu, 15 Jan 2009 07:03:20 +0000 (07:03 +0000)]
cmatose: fix miscounting send/receive completions
Because send and receive completions go to the same CQ, it's possible to process receive completions when we're looking for sends. The receive completions will be counted as sends and essentially lost as receives, resulting in hangs polling the CQ. Fix this by separating sends and receives into their own CQs.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1829 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
shefty [Thu, 15 Jan 2009 06:59:53 +0000 (06:59 +0000)]
libibverbs: save QP parameters before query
ibv_qp_create does not set QP values until after ibv_qp_query has been called to obtain the QPN. However, ibv_qp_query assumes that the values have been set.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1827 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
stansmith [Tue, 13 Jan 2009 23:56:51 +0000 (23:56 +0000)]
[UMAD] removed readme.txt file as the Windows libumad implementation is indeed a Windows specific implementation - I was confused when the readme.txt was comitted.
leonidk [Tue, 13 Jan 2009 11:31:42 +0000 (11:31 +0000)]
[IBBUS] remove unused files
The patch removes ib_bus.cdf, ib_bus32.cdf and ib_bus.inx files.
They are not used anymore since ibbus is now a filter driver.
ib_bus.cdf content moved to mthca.cdf & mlx4_hca.cdf, ib_bus.inx content moved to mthca.inx & mlx4_hca.inx.
stansmith [Thu, 8 Jan 2009 00:36:50 +0000 (00:36 +0000)]
[WinOF] When requested, start the local OpenSM service immediately after loading HCA driver in order for the later IOU driver to correctly load; Server 2003/XP64 problem observed such that IOU driver fails to load if OpenSM has not setup IOU/IOC prior to IOU driver load via devcon; dpinst.exe works find due to driver store.
Removed some unused code in CustomActions.vbs
stansmith [Mon, 5 Jan 2009 19:53:57 +0000 (19:53 +0000)]
[WinOF] Support Winmad.dll, libibverbs.dll, libibumad.dll, ibverbs symbols(.pdb files).
winverbs installed by default.
Linux OFED SRP target recognized when SRP installed.
For Server 2008 & Vista - dpinst.exe is used to install IOU, SRP & VNIC. Server 2003/XP use devman.exe.
aestrin [Wed, 24 Dec 2008 20:12:55 +0000 (20:12 +0000)]
[ipoib] cm. Fixed send completion routines handling error cases:
- for fragmented packets in UD completion only last fragment will have packet address set in wr_id.
- removed extra endpt dereference for CM completion routine.
leonidk [Wed, 17 Dec 2008 10:10:32 +0000 (10:10 +0000)]
[IBAL] compare TID based on user contolled area only
The current MAD processing code operates as follows when sending a request and trying to match a received response:
1. It saves the user's transaction ID (TID) to client_tid.
2. It clears the upper 32-bits of the TID.
3. It sets the upper 32-bits of the TID to an internal index.
4. It clears the upper 32-bits of a received response.
5. It tries to match the received response against client_tid.
Responses are only matched successfully if the user has already cleared the upper 32-bits of the TID before sending the MAD. It would be better to only match responses using the lower, user-controlled, 32-bits of the TID.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1794 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
leonidk [Wed, 17 Dec 2008 10:05:49 +0000 (10:05 +0000)]
[IBAL]use default LID of 1 for SA AV
The 'SA request' code creates an AV for the SA. It wants to use a default LID of 1, but does not byte-swap the value. Swap the value.
Because the AV is modified later to use the real SM LID, the value used here is irrelevant, but using a non-swapped value looks like a bug to anyone reading it.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1793 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86