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