svn commit: r273806 - in head/contrib/ofed: libcxgb4 libcxgb4/src usr.lib usr.lib/libcxgb4

Navdeep Parhar np at FreeBSD.org
Wed Oct 29 01:15:49 UTC 2014


Author: np
Date: Wed Oct 29 01:15:48 2014
New Revision: 273806
URL: https://svnweb.freebsd.org/changeset/base/273806

Log:
  Userspace library for Chelsio's Terminator 5 based iWARP RNICs (pretty
  much every T5 card that does _not_ have "-SO" in its name is RDMA
  capable).
  
  This plugs into the OFED verbs framework and allows userspace RDMA
  applications to work over T5 RNICs.  Tested with rping.
  
  Obtained from:	Chelsio Communications
  Relnotes:	Yes
  Sponsored by:	Chelsio Communications

Added:
  head/contrib/ofed/libcxgb4/
  head/contrib/ofed/libcxgb4/AUTHORS
  head/contrib/ofed/libcxgb4/COPYING
  head/contrib/ofed/libcxgb4/ChangeLog
  head/contrib/ofed/libcxgb4/README
  head/contrib/ofed/libcxgb4/cxgb4.driver
  head/contrib/ofed/libcxgb4/src/
  head/contrib/ofed/libcxgb4/src/cq.c
  head/contrib/ofed/libcxgb4/src/cxgb4-abi.h
  head/contrib/ofed/libcxgb4/src/cxgb4.map
  head/contrib/ofed/libcxgb4/src/dev.c
  head/contrib/ofed/libcxgb4/src/libcxgb4.h
  head/contrib/ofed/libcxgb4/src/qp.c
  head/contrib/ofed/libcxgb4/src/queue.h
  head/contrib/ofed/libcxgb4/src/t4.h
  head/contrib/ofed/libcxgb4/src/t4_chip_type.h
  head/contrib/ofed/libcxgb4/src/t4_pci_id_tbl.h
  head/contrib/ofed/libcxgb4/src/t4_regs.h
  head/contrib/ofed/libcxgb4/src/t4fw_interface.h
  head/contrib/ofed/libcxgb4/src/verbs.c
  head/contrib/ofed/usr.lib/libcxgb4/
  head/contrib/ofed/usr.lib/libcxgb4/Makefile
  head/contrib/ofed/usr.lib/libcxgb4/config.h
Modified:
  head/contrib/ofed/usr.lib/Makefile

Added: head/contrib/ofed/libcxgb4/AUTHORS
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/ofed/libcxgb4/AUTHORS	Wed Oct 29 01:15:48 2014	(r273806)
@@ -0,0 +1 @@
+Chelsio Communications, Inc.

Added: head/contrib/ofed/libcxgb4/COPYING
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/ofed/libcxgb4/COPYING	Wed Oct 29 01:15:48 2014	(r273806)
@@ -0,0 +1,29 @@
+Copyright (c) 2010-2013. Chelsio Communications. All rights reserved.
+
+This software is available to you under a choice of one of two
+licenses.  You may choose to be licensed under the terms of the GNU
+General Public License (GPL) Version 2, available from the file
+COPYING in the main directory of this source tree, or the
+OpenIB.org BSD license below:
+
+    Redistribution and use in source and binary forms, with or
+    without modification, are permitted provided that the following
+    conditions are met:
+
+     - Redistributions of source code must retain the above
+       copyright notice, this list of conditions and the following
+       disclaimer.
+
+     - Redistributions in binary form must reproduce the above
+       copyright notice, this list of conditions and the following
+       disclaimer in the documentation and/or other materials
+       provided with the distribution.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

Added: head/contrib/ofed/libcxgb4/ChangeLog
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/ofed/libcxgb4/ChangeLog	Wed Oct 29 01:15:48 2014	(r273806)
@@ -0,0 +1,1054 @@
+commit 6a417d903b9add7c8ab2b71ac11c85c46671e020
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Jul 31 11:25:22 2014 -0500
+
+    Spin release 1.3.5.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 52ecbea1b908d3b449022e2d75ebe0ca3885bcf2
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Jul 31 11:14:05 2014 -0500
+
+    libcxb4: use wc_wmb() instead of wmb().
+    
+    The user mode RDMA macro for wmb() is not sufficient to provide the
+    fencing needed.  This was causing corrupted packets when running multiple
+    WD-UDP sockperf processes.  The correct "sfence" instruction is provided
+    with the wc_wmb() macro.  See /usr/include/infiniband/arch.h.
+    
+    Note:  The kernel implementation of wmb() is sufficient.  This is a
+    libcxgb4 issue only...
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 242c29715372bf6999aa343a5aad5654da3ecf3a
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Jun 18 10:17:00 2014 -0500
+
+    Spin release 1.3.4
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 2d54f4c5604cae24caac493aaf6d8b0907ac2ed2
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Jun 18 10:16:52 2014 -0500
+
+    Support the query_qp() verb
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit f80159d12148774646ad65d03cd070f6d5f86eb4
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 9 15:20:47 2014 -0500
+
+    Account for the full qid range.
+    
+    The total qid range is should really be based on the max_cq attribute.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 5aaf5e7277a1c12964aac11a4cff94520717e805
+Author: Yann Droneaud <ydroneaud at opteya.com>
+Date:   Mon May 5 12:59:23 2014 -0500
+
+    kernel abi: adds explicit padding in struct c4iw_alloc_ucontext_resp
+    
+    i386 ABI disagree with most other ABIs regarding alignment
+    of data type larger than 4 bytes: on most ABIs a padding must
+    be added at end of the structures, while it is not
+    required on i386.
+    
+    Such ABI disagreement will make an x86_64 kernel try to write past
+    the struct c4iw_alloc_ucontext_resp buffer provided by an i386
+    userspace binary. As struct c4iw_alloc_ucontext_resp is likely
+    on stack, see function c4iw_alloc_context(), side effects are
+    expected.
+    
+    On kernel side, this structure was modified for kernel v3.15-rc1
+    by following commit:
+    
+      Commit 05eb23893c2cf9502a9cec0c32e7f1d1ed2895c8
+      Author: Steve Wise <swise at opengridcomputing.com>
+      Date:   Fri Mar 14 21:52:08 2014 +0530
+    
+          cxgb4/iw_cxgb4: Doorbell Drop Avoidance Bug Fixes
+    
+    If boundary check is implemented on kernel side, the x86_64
+    kernel will instead refuse to write past the i386 userspace
+    provided buffer and the uverbs will fail.
+    
+    To fix these issues, this patch adds an explicit padding at end
+    of structure so that i386 and others ABI share the same structure
+    layout. This patch makes c4iw_alloc_context() check for a value
+    in the padding field to detect newer kernel using the field for
+    a future purpose (only activated in debug).
+    
+    With this patch, libcxgb4 will work against older kernel and
+    newer patched kernel.
+    
+    Link: http://marc.info/?i=cover.1399216475.git.ydroneaud@opteya.com
+    Signed-off-by: Yann Droneaud <ydroneaud at opteya.com>
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 5c65bf17913949368db8802656dc7dbc291271ed
+Author: Yann Droneaud <ydroneaud at opteya.com>
+Date:   Mon May 5 12:59:23 2014 -0500
+
+    kernel abi: adds explicit padding in struct c4iw_create_cq_resp
+    
+    i386 ABI disagree with most other ABIs regarding alignment
+    of data type larger than 4 bytes: on most ABIs a padding must
+    be added at end of the structures, while it is not required
+    on i386.
+    
+    Such ABI disagreement will make an x86_64 kernel try to write past
+    the struct c4iw_create_cq_resp buffer provided by an i386
+    userspace binary. As struct c4iw_create_cq_resp is likely
+    on stack, see function c4iw_create_cq(), side effects are
+    expected.
+    
+    On kernel side, this structure was added for kernel v2.6.35-rc1
+    by following commit.
+    
+      Commit cfdda9d764362ab77b11a410bb928400e6520d57
+      Author: Steve Wise <swise at opengridcomputing.com>
+      Date:   Wed Apr 21 15:30:06 2010 -0700
+    
+          RDMA/cxgb4: Add driver for Chelsio T4 RNIC
+    
+    If boundary check is implemented on kernel side, the x86_64 kernel
+    will refuse to write past the i386 userspace provided buffer and the
+    uverbs will fail.
+    
+    To fix these issues, this patch adds an explicit padding at end
+    of structure so that i386 and others ABI share the same structure
+    layout. This patch makes c4iw_create_cq() check for a value in the
+    padding field to detect newer kernel using the field for a future
+    purpose (only activated in debug).
+    
+    With this patch, libcxgb4 will work against older kernel and
+    newer patched kernel.
+    
+    Link: http://marc.info/?i=cover.1399216475.git.ydroneaud@opteya.com
+    
+    Signed-off-by: Yann Droneaud <ydroneaud at opteya.com>
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 4f334446f63e3a34006f504f7c89075423c412b4
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Mar 11 11:47:19 2014 -0500
+
+    Spin release 1.3.3.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 98cea522707232b99ff5c07dd9f57937aa8a7d91
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Mar 11 11:44:16 2014 -0500
+
+    Zero the status_page_size before calling get_context.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomuting.com>
+
+commit a373e16a94524e20492301b0e97f53930133739b
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 12:07:19 2014 -0600
+
+    Spin release 1.3.2.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit a2f25730971e8b76033e283f03e79ef4c5dbc4bc
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:29:50 2014 -0600
+
+    Fixed compilation error with debug enabled.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit f484e0f4c5a4cb249f86a050efd659be37a51204
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:24:06 2014 -0600
+
+    Use V_PIDX_T5() for T5 devices in ring_db funcs.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 32b74074808da51e5918295bfc63d347548478a0
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:24:05 2014 -0600
+
+    Call wc_wmb() needed after DB writes.
+    
+    Need to do an sfence after botht he WC and regular PIDX DB write.
+    Otherwise the host might reorder things and cause work request corruption
+    (seen with NFSRDMA).
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit c078eed091a32b930f5bbdf0a12a3be0d0a79cf0
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:23:57 2014 -0600
+
+    Call rmb() after reading valid gen bit.
+    
+    Some HW platforms can reorder read operations, so we must rmb() after
+    we see a valid gen bit in a CQE but before we read any other fields
+    from the CQE.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 7b482dcdbbd187fd8372f744157ac2b323d32f45
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:12:06 2014 -0600
+
+    Update copyrights.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit f74316373c0b2a2bd2872ae38f7be516a10503c9
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:12:06 2014 -0600
+
+    Refresh t4 fw/hw reg files.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 1b8434f22deb30f700246dd2f474eaa2512e4867
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 11:12:03 2014 -0600
+
+    Add common device id table and chip types.
+    
+    This will make it easier to merge in new devices.
+
+commit 18e5bc32bbe7e19eb9ea5a34d8b2f7d1e6355105
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 10:25:33 2014 -0600
+
+    Remove dead SIM code.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit c8c793385de1d3e9c1edeb7b13cbc964049b8362
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 10:23:05 2014 -0600
+
+    Remove dead raw qp code.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 9302c092d46e4c40cbf6b2189aeda08e5ca3fea4
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 10:17:52 2014 -0600
+
+    iw_cxgb4/libcxgb4: swsq "signaled" state needs to mind sq_sig_all.
+    
+    When a qp is created, the ULP can request that all sq wrs be signaled.
+    The swsqe entries need to take this into account when marking the entry
+    as signaled.
+    
+    This bug will cause read request CQEs to be silently discarded, and can
+    cause flush problems because the swsqe entry will be mismarked for qps
+    created with sq_sig_all set in the qp init attributes.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 48c6633d4a6510a8c1832ac800f45c2099eb28b4
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 10:17:52 2014 -0600
+
+    never consume a pending wr in sq flush.
+    
+    There is a race when moving a QP from RTS->CLOSING where a SQ work
+    request could be posted after the FW receives the RDMA_RI/FINI WR.
+    The SQ work request will never get processed, and should be completed
+    with FLUSHED status.  Function c4iw_flush_sq(), however was dropping
+    the oldest SQ work request when in CLOSING or IDLE states, instead of
+    completing the pending work request. If that oldest pending work request
+    was actually complete and has a CQE in the CQ, then when that CQE is
+    proceessed in poll_cq, we'll BUG_ON() due to the inconsistent SQ/CQ state.
+    
+    This is a very small timing hole and has only been hit once so far.
+    
+    c4iw_flush_sq() MUST always flush all non-completed WRs with FLUSHED
+    status regardless of the QP state.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 1a3a3e8e8da7463e59b74d5c5396e7bd5e303cd4
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 10:11:35 2014 -0600
+
+    unmap status page when freeing the context.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 81e83780e44af2ff25c2572b15fe7e8b8cc6e134
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 10:05:54 2014 -0600
+
+    DB Drop Avoidance, Version 2.
+    
+    Add support for the device status page mapped per device that is used
+    to enable/disable user db usage.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 5830447cef866432c4d3e65f7e58c51a0c687798
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 09:40:39 2014 -0600
+
+    Fix DEBUG code in c4iw_flush_hw_cq().
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 127bc437797ca34e14b261fa653c1d0524d07272
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Feb 18 09:40:38 2014 -0600
+
+    T4 onchip workaround: do the 16 4B MA writes just before DB ring.
+    
+    This is a merge of sw repo changesets 1576, 2149, and 2246.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit ac38281728d12a91725aa67e0273dc26976598fb
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Fri Jul 19 09:37:10 2013 -0500
+
+    Spin release 1.3.1.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 272fcac194318e13f563b46463726cc03ae83dbe
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Fri Jul 19 09:36:35 2013 -0500
+
+    Update copyright.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit ba3183d18168f764700ded52651033a79d2a9a86
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:10:02 2013 -0500
+
+    get rid of hard coded queue iqs.
+    
+    Since we now get the number of queues available from the driver,
+    we shouldn't be using the hard coded defines anymore.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 2095e0a04bc5357da1b9d346e00d52cf7c236cf6
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:09:35 2013 -0500
+
+    update configure.in
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit a7a4de4f37a60ffbd8addd8f9ab5505adb86c63f
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:09:34 2013 -0500
+
+    Mind the sq_sig_all/sq_sig_type QP attributes.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 4a485c8dc1c7c70ab85c708bb4c530eef385424d
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:09:34 2013 -0500
+
+    always do GTS write if cidx_inc == M_CIDXINC.
+    
+    When polling, we do a GTS update if the accumulated cidx_inc == the cq
+    depth / 16.  This works around a T4 bug.  However, if the cq is large
+    enough, cq depth / 16 exceeds the size of the field in the GTS word.
+    So we also need to update if cidx_inc hits M_CIDXINC to avoid overflowing
+    the field.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit a276f65add45933cf8b16bb09361786cf1932c4b
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:09:34 2013 -0500
+
+    fixed bug where sq.udb was getting overwritten.
+    
+    There was an erroneous statement in create_rc_qp() which caused the
+    sq.udb va to be overwritten with the rq.udb va only for on-chip queues.
+    This error only affected unmapping of that mapped va when destroying
+    a qp.  In the presence of multiple threads creating/destroying qps, the
+    erroneously unmapped va could have been assigned to another qp mapping.
+    This causes intermittent seg faults as libcxgb4 tries to access memory
+    that has been unmapped in error.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 1cb6249cf722e265d8e2364de0ee5b0d59a8e4cd
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:09:34 2013 -0500
+
+    flush problem with unsignaled wrs.
+    
+    c4iw_flush_sq() should only flush wrs that have not already been
+    flushed. Since we already track where in the sq we've flushed via
+    sq.cidx_flush, just start at that point and flush any remaining.  This bug
+    only caused a problem in the presence of unsignaled work requests.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 4132e3434d8ffc2b92055649f42c56be77111216
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Jun 10 14:09:31 2013 -0500
+
+    clean up queue dump logic.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit a5e390613548f1dc62d9fe142b6a30a943fc56cf
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Jun 4 12:09:21 2013 -0500
+
+    accounting for unsignled sq wrs fails to deal with wrap.
+    
+    When determining how many wrs are completed with a signaled cqe,
+    correctly deal with queue wraps.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 0c1906cec82443e2323dc69dd5c23ae4314087c0
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Jun 4 12:09:19 2013 -0500
+
+    Handle qp flushes with pending sw cqes.
+    
+    The flush and out of order completion logic has a bug:  If out of order
+    completions are flushed but not yet polled by the consumer and the qp
+    is then flushed, we end up inserting duplicate completions.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 26a19bf6d020dbaab8c6cf13396b39a64f952dba
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Tue Jun 4 11:57:00 2013 -0500
+
+    fixed false uninitialized var warning.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 119e11e72d20a07a806c3385b8cfa6de93f7d114
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 28 15:15:39 2013 -0500
+
+    Spin release 1.3.0
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit a4a0d3fe768ffa33a75ab3df4bd8c678e7f7180b
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 28 15:15:38 2013 -0500
+
+    Remove aclocal.m4.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 3c22ddca7cf627d62d06b0ff374fa04192a8cc4c
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 28 15:15:37 2013 -0500
+
+    libcxgb4: unmap the correct udb/ugts address.
+    
+        The various db and gts variables holding the mapped bar2 pointer
+        get incremented at creation time as a normal part of object creation.
+        However this causes the wrong address to get unmapped when the object is
+        destroyed.  The result is a mapping leak because the munmap() fails.
+        So align them back to their proper page boundary when calling munmap().
+    
+    Singed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 9b2d3af5735e4067b83cde79e08a37142e8fb895
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 28 15:15:35 2013 -0500
+
+    Query device to get the max supported stags, qps, and cqs.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit e8a595da9129d650caf162b7103368af03e07fcc
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 28 15:15:33 2013 -0500
+
+    Add T5 support.
+    
+    This commit is composed of a series of patches to enable T5 support.  I
+    folded them into one commit for simplicity.  Plus intermittent patches
+    caused problems/regressions/etc, so its cleaner to have 1 commit to enable
+    the new device.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 7cb73aba54eb47d6902c9a3f952c0e37500cac8f
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Mar 4 10:28:32 2013 -0600
+
+    zero out r3 and r4 fields of fw_ri_send_wr messages.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit f61c762e82b3e6e1c27496eecaf2bf8d00f009e3
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Mar 4 10:21:39 2013 -0600
+
+    Add new T4 device IDs.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit c66a627e1e964bad794e9dc40e9a39dc6977aa1e
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Mar 4 10:08:59 2013 -0600
+
+    flush bug can cause application crash
+    
+    This fixes a problem in the flush logic that could occur if the
+    current position is near the end of the queue and the 'count' being
+    retired plus this position was greater than the queue size. In this
+    case the index wasn't being wrapped and the associated swcqe pointer
+    would point past the end of the CQ.
+    
+    Asserts were added to check other possible wrap-error paths.
+    
+    This bug was causing mbw to occasionally crash when flushing the qp.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit c5cdab8ad79cecc996d735011b210729fcc95ecd
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Mon Mar 4 10:08:58 2013 -0600
+
+    Silently eat unsignaled read response cqes.
+    
+    Terminator HW always generates read response cqes.  We need to silently
+    eat them vs returning them to the user.  The perftest benchmark ib_read_bw
+    relies on unsignaled work requests and will crash with this fix.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 1eefdaae19110deae2c20a08ea53cab451fc00bb
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Fri Feb 8 13:51:37 2013 -0600
+
+    Remove useless dma_addr_t define.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit c551f4632cfcd284ad82d1d9b36d1449d109a5de
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Fri Feb 8 13:51:00 2013 -0600
+
+    Disable strict aliasing warnings.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 695a5a4be21f44d49999c83e6ac0699ce90d97c7
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Nov 9 09:50:32 2011 -0600
+
+    Spin release 1.2.0.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 721cfb11ca5697d017bc60167805aea9bbb13ba0
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Mon Nov 7 15:08:45 2011 +0530
+
+    libcxgb4: Reset flush_cidx before incrementing cidx.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit db4fe38c7ee2b3ad9dc8c33f2b54f0c8cdf8b4d2
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Mon Nov 7 15:06:29 2011 +0530
+
+    libcxgb4: Fix multi-flush logic path....again
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 19198bdc2f7feb05babcc2a544ae8b48e4943c41
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Mon Nov 7 15:02:57 2011 +0530
+
+    libcxgb4: Reset cidx_flush if a active queue starts getting hw cqes
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 98545f3a8cbe1670efad080cf908db42269f76ff
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Mon Nov 7 14:56:44 2011 +0530
+
+    libcxgb4: Support for flushing a CQ bound to multiple QPs
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 86ba968706b3dc8cb232a303201bb03a2d919c88
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Mon Nov 7 13:06:43 2011 +0530
+
+    libcxgb4: Checks iw_cxgb4 ABI version to know door bell drop recovery support
+    
+    Store iw_cxgb4 ABI version in a global state. Read that global state in
+    t4_wq_db_enabled to know if iw_cxgb4 driver supports door bell drop recovery.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 2b6563ed5b377dac56c218b809d387089d70312d
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Sun Oct 23 16:50:16 2011 +0530
+
+    libcxgb4: fixed compilation warnings
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit c5c120969c22a04d34adc566085192afc99d0db9
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 19:05:20 2011 +0530
+
+    libcxgb4: Bug Fix#4410 - Fix 3 segfaults
+    
+    This patch fixes 3 segfaults with below signatures:
+    ----
+    1)
+    Program received signal SIGSEGV, Segmentation fault.
+    [Switching to Thread 0x7ffff7fef710 (LWP 22624)]
+    0x00007ffff75613e4 in create_read_req_cqe (wq=0x7fffe800ada0,
+    hw_cqe=0x7ffff7fc7880, read_cqe=0x7ffff7fee860) at src/cq.c:162
+    162             read_cqe->u.rdma.u.scqe.cidx = wq->sq.oldest_read->idx;
+    (gdb) bt
+    hw_cqe=0x7ffff7fc7880, read_cqe=0x7ffff7fee860) at src/cq.c:162
+    attr=0x7ffff7feeae0, attr_mask=1) at src/verbs.c:691
+    src/verbs.c:721
+    
+    2)
+    Program received signal SIGSEGV, Segmentation fault.
+    [Switching to Thread 0x7ffff6e07710 (LWP 22218)]
+    0x00007ffff71563e4 in create_read_req_cqe (wq=0x7fffe800ada0,
+    hw_cqe=0x7ffff7fc7880, read_cqe=0x7ffff6e02b70) at src/cq.c:162
+    162             read_cqe->u.rdma.u.scqe.cidx = wq->sq.oldest_read->idx;
+    (gdb) bt
+    hw_cqe=0x7ffff7fc7880, read_cqe=0x7ffff6e02b70) at src/cq.c:162
+    src/verbs.c:887
+    
+    3)
+    (gdb) bt
+    wc=0x7ffff51378d0) at src/cq.c:776
+    evd_ptr=<value optimized out>, wc_ptr=<value optimized out>)
+        at /usr/include/infiniband/verbs.h:957
+    ----
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 075adec1159606303b40f4b29ef3cea7ab780ac2
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 18:59:16 2011 +0530
+
+    libcxgb4: return -ENOSYS in c4iw_resize_cq().
+    
+    I fixed a "bug" in c4iw_resize_cq() in an earlier commit which regressed
+    us.  c4iw_resize_cq() was returning 0 always even though we don't support
+    resizing the CQ.  So I change libcxgb4 to return whatever errno is
+    returned by the kernel driver.   However, because the driver didn't set
+    the uverbs capabilities for resize_cq, uverbs returned EINVAL.  The OMPI
+    code checks for -ENOSYS and handles providers that don't support it.
+    If, however, ibv_resize_cq() returns any other error, OMPI bails out.
+    So we need to return -ENOSYS.
+    
+    I didn't see this error, however, running NP192 OMPI/IMB all night long.
+    So it must only try to resize for small jobs and thus I missed the
+    regression.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 320285a3a3a93a614e24a78f7a68780d7791e3c5
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 18:53:47 2011 +0530
+
+    libcxgb4: Don't flush unsignaled WRs if the QP closed normally
+    
+    - add query_qp support in driver to query the qp state before flushing.
+    
+    - fixed flush logic (again).
+    
+    - don't flush unsignaled WRs is QP had a normal close.
+    
+    - support up to 64K QIDs.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 4c98bebe97aeef1c5cda2f071eb9c1d4fa29c37e
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 17:58:38 2011 +0530
+
+    libcxgb4: Correctly flush unsignaled WRs followed by a signaled WR.
+    
+    The cq flush logic was not accounting for unsignaled SQ WRs followed by
+    a signaled WR.  The result was too many flushed CQEs causing application
+    faults or assert() failures in libcxgb4 because the SQ state is corrupted.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 8196f85bdefb1511d6d834240a92fdaf815834b8
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 17:31:03 2011 +0530
+
+    libcxgb4: Remove auto generated ltmain.sh file.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 230d12f42d143eeb53d8c4935ba27620c13e6165
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 17:20:37 2011 +0530
+
+    libcxgb4: Add debug code to dump state on a stall condition.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 2df0677b22aebb7a22d0e8ca11beb90250b363c7
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Fri Oct 21 15:04:46 2011 +0530
+
+    libcxgb4: don't write host idx values when wq is in error.
+    
+    This fixes a regression introduced by the db recovery changes.  The host
+    idx shadow fields at the end of the wq should only be written if the wq
+    is not in error.  Otherwise, a seg fault can occur.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 4eaf4b9added6ca660ef2f9363b24d754185fddf
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Thu Oct 20 19:55:57 2011 +0530
+
+    libcxgb4: cq debug changes
+    
+        - turn on cq overflow detection by default
+    
+        - shadow cq->cidx in the cq status page
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit b15d02248dd1029706d07fa229767d8b68d16c65
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Thu Oct 20 19:43:07 2011 +0530
+
+    libcxgb4: DB Drop Recovery for RDMA and LLD queues.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit b2c7499eab73cf28cbd9cf86f6ea134e2450cdd3
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Sun Oct 23 12:59:24 2011 +0530
+
+    libcxgb4: put queue idx values in status page for debug.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit 60a30673a4072b6727e7266f7782607ddcbc8de7
+Author: Vipul Pandya <vipul at chelsio.com>
+Date:   Thu Oct 20 18:07:13 2011 +0530
+
+    libcxgb4: DB Overflow Avoidance.
+    
+    - when user dbs are disabled, call into the kernel driver via modify_qp()
+    to ring the dbs.
+    
+    Signed-off-by: Vipul Pandya <vipul at chelsio.com>
+
+commit c8651d01a2d69d83caff8c01b32be0b23624d8da
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 10 09:45:00 2011 -0600
+
+    Spin release 1.1.1.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit ace467085deb7327522faeb19e20e13d691f66a2
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 10 09:34:11 2011 -0600
+
+    Flush MA FIFO for on-chip queues.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 7cb87f46c1784c791d29646104ab355ed920747d
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Mar 10 09:27:57 2011 -0600
+
+    increase the frequency of CIDX-INC updates.
+    
+    Heavy IMB loads reveal that my current algorithm of doing CIDX-INC
+    GTS writes every 1/2 the CQ depth was not sufficient.  This patch
+    increases the frequency to 1/16.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 7652d71daadda0c3aba9b96311ea623a1e324d77
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 16:57:04 2010 -0500
+
+    Spin release 1.1.0.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit ed05d22592bc96987635b2c255a99663f286b812
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 16:56:51 2010 -0500
+
+    Support all T4 device IDs.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit b051a2ea9dc7b6ffa08f955e60b331e42fec8672
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 15:54:35 2010 -0500
+
+    Support ABI 0 and 1 versions of the iwarp driver.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 62f1363bb716e2283f9e2b885e5f02a6d5c692d1
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 14:06:17 2010 -0500
+
+    Bump the slots per SQ to 5 to allow up to 128MB fast registers.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit d51e041839254d656cc260dba3f26a7c9d73aa56
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 14:06:16 2010 -0500
+
+    Raw QP implementation
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 8f55539d0b8aea70084edf31687e590cf5a57221
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 14:03:55 2010 -0500
+
+    Add compile-time user mode rdma stats.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 2e3531bbd91d7a6f057b3503132aef5e64adb548
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 13:57:03 2010 -0500
+
+    Support on-chip SQs.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 65bb173b86c2e0a9ff5f877e4d3951cb8daa6e97
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 13:54:44 2010 -0500
+
+    Work around TERM CQE hw bug.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 6bb37d1f72652d4ed0c1972bc673f4418cc7a856
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Wed Sep 15 13:54:44 2010 -0500
+
+    Zero out padding in iSGLs.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit aad128404c494ec4779055b5e550c2d7de7d5ca9
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Jul 22 14:58:51 2010 -0500
+
+    Spin release 1.0.4
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 07ac253a8a479fd59fe654baf5a94ffc1de13765
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Jul 22 14:57:27 2010 -0500
+
+    Do GTS/CIDX_INC writes in the poll path to avoid drops.
+    
+    With T4 asic, we still see the CIDX_INC overflow/drops.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 3394198639f811c86ab519c43197a9b724435cb0
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu Jul 22 14:56:53 2010 -0500
+
+    Support T420 and T440 cards.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 311dd1c8ec3e38287895053dce52dfef5ed5f0b1
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Fri Jun 11 10:40:53 2010 -0500
+
+    Spin release 1.0.3.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit a62d7cf38f7b6c731486ff969ee7e3a4238ebc3f
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Fri Jun 11 10:37:17 2010 -0500
+
+    Support variable sized work requests.
+    
+    T4 EQ entries are in multiples of 64B.  Currently the RDMA SQ and RQ
+    use fixed sized entries composed of 4 EQ entries for the SQ and 2 EQ
+    entries for the RQ.  For optimial latency with small IO, we need to
+    change this so the HW only needs to DMA the EQ entries actually used by
+    a given work request.
+    
+    Implementation:
+    
+    - add wq_pidx counter to track where we are in the EQ.  cidx/pidx are
+    used for the sw sq/rq tracking and flow control.
+    
+    - the variable part of work requests is the SGL.  Add new functions to
+    build the SGL and/or immediate data directly in the EQ memory wrapping
+    when needed.
+    
+    - adjust the min burst size for the EQ contexts to 64B.
+
+commit 3be829d117a8ca7957370b09b477fe551de0cea5
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu May 20 15:52:59 2010 -0500
+
+    Spin release 1.0.2.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit dc1ea232e8ece4ba53d2496befad14bd433e2e3e
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu May 20 15:48:37 2010 -0500
+
+    only insert sq qid in lookup tables.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 00c60fd47b71dac42d864662567701e2618ff45d
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu May 20 15:47:37 2010 -0500
+
+    Update some driver limits.
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit f25661e19d728a0a33a221c0646a9fce9b160f8b
+Author: Steve Wise <swise at opengridcomputing.com>
+Date:   Thu May 20 15:46:38 2010 -0500
+
+    Fix cq arm overflow.
+    
+    - wrap cq->cqidx_inc based on cq size
+    - optimize t4_arm_cq() logic
+    
+    Signed-off-by: Steve Wise <swise at opengridcomputing.com>
+
+commit 8c224aca8f1acd219010e46da538ae4c9a4f9d1a

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-head mailing list