Date: Wed, 29 Oct 2014 01:15:49 +0000 (UTC) From: Navdeep Parhar <np@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r273806 - in head/contrib/ofed: libcxgb4 libcxgb4/src usr.lib usr.lib/libcxgb4 Message-ID: <201410290115.s9T1FnTv094112@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@opengridcomputing.com> +Date: Thu Jul 31 11:25:22 2014 -0500 + + Spin release 1.3.5. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 52ecbea1b908d3b449022e2d75ebe0ca3885bcf2 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 242c29715372bf6999aa343a5aad5654da3ecf3a +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Jun 18 10:17:00 2014 -0500 + + Spin release 1.3.4 + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 2d54f4c5604cae24caac493aaf6d8b0907ac2ed2 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Jun 18 10:16:52 2014 -0500 + + Support the query_qp() verb + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit f80159d12148774646ad65d03cd070f6d5f86eb4 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 5aaf5e7277a1c12964aac11a4cff94520717e805 +Author: Yann Droneaud <ydroneaud@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@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@opteya.com> + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 5c65bf17913949368db8802656dc7dbc291271ed +Author: Yann Droneaud <ydroneaud@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@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@opteya.com> + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 4f334446f63e3a34006f504f7c89075423c412b4 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Mar 11 11:47:19 2014 -0500 + + Spin release 1.3.3. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 98cea522707232b99ff5c07dd9f57937aa8a7d91 +Author: Steve Wise <swise@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@opengridcomuting.com> + +commit a373e16a94524e20492301b0e97f53930133739b +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Feb 18 12:07:19 2014 -0600 + + Spin release 1.3.2. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit a2f25730971e8b76033e283f03e79ef4c5dbc4bc +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Feb 18 11:29:50 2014 -0600 + + Fixed compilation error with debug enabled. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit f484e0f4c5a4cb249f86a050efd659be37a51204 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 32b74074808da51e5918295bfc63d347548478a0 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit c078eed091a32b930f5bbdf0a12a3be0d0a79cf0 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 7b482dcdbbd187fd8372f744157ac2b323d32f45 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Feb 18 11:12:06 2014 -0600 + + Update copyrights. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit f74316373c0b2a2bd2872ae38f7be516a10503c9 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Feb 18 11:12:06 2014 -0600 + + Refresh t4 fw/hw reg files. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 1b8434f22deb30f700246dd2f474eaa2512e4867 +Author: Steve Wise <swise@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@opengridcomputing.com> +Date: Tue Feb 18 10:25:33 2014 -0600 + + Remove dead SIM code. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit c8c793385de1d3e9c1edeb7b13cbc964049b8362 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Feb 18 10:23:05 2014 -0600 + + Remove dead raw qp code. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 9302c092d46e4c40cbf6b2189aeda08e5ca3fea4 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 48c6633d4a6510a8c1832ac800f45c2099eb28b4 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 1a3a3e8e8da7463e59b74d5c5396e7bd5e303cd4 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Feb 18 10:11:35 2014 -0600 + + unmap status page when freeing the context. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 81e83780e44af2ff25c2572b15fe7e8b8cc6e134 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 5830447cef866432c4d3e65f7e58c51a0c687798 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 127bc437797ca34e14b261fa653c1d0524d07272 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit ac38281728d12a91725aa67e0273dc26976598fb +Author: Steve Wise <swise@opengridcomputing.com> +Date: Fri Jul 19 09:37:10 2013 -0500 + + Spin release 1.3.1. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 272fcac194318e13f563b46463726cc03ae83dbe +Author: Steve Wise <swise@opengridcomputing.com> +Date: Fri Jul 19 09:36:35 2013 -0500 + + Update copyright. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit ba3183d18168f764700ded52651033a79d2a9a86 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 2095e0a04bc5357da1b9d346e00d52cf7c236cf6 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Mon Jun 10 14:09:35 2013 -0500 + + update configure.in + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit a7a4de4f37a60ffbd8addd8f9ab5505adb86c63f +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 4a485c8dc1c7c70ab85c708bb4c530eef385424d +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit a276f65add45933cf8b16bb09361786cf1932c4b +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 1cb6249cf722e265d8e2364de0ee5b0d59a8e4cd +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 4132e3434d8ffc2b92055649f42c56be77111216 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Mon Jun 10 14:09:31 2013 -0500 + + clean up queue dump logic. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit a5e390613548f1dc62d9fe142b6a30a943fc56cf +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 0c1906cec82443e2323dc69dd5c23ae4314087c0 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 26a19bf6d020dbaab8c6cf13396b39a64f952dba +Author: Steve Wise <swise@opengridcomputing.com> +Date: Tue Jun 4 11:57:00 2013 -0500 + + fixed false uninitialized var warning. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 119e11e72d20a07a806c3385b8cfa6de93f7d114 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu Mar 28 15:15:39 2013 -0500 + + Spin release 1.3.0 + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit a4a0d3fe768ffa33a75ab3df4bd8c678e7f7180b +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu Mar 28 15:15:38 2013 -0500 + + Remove aclocal.m4. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 3c22ddca7cf627d62d06b0ff374fa04192a8cc4c +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 9b2d3af5735e4067b83cde79e08a37142e8fb895 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit e8a595da9129d650caf162b7103368af03e07fcc +Author: Steve Wise <swise@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@chelsio.com> + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 7cb73aba54eb47d6902c9a3f952c0e37500cac8f +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit f61c762e82b3e6e1c27496eecaf2bf8d00f009e3 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Mon Mar 4 10:21:39 2013 -0600 + + Add new T4 device IDs. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit c66a627e1e964bad794e9dc40e9a39dc6977aa1e +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit c5cdab8ad79cecc996d735011b210729fcc95ecd +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 1eefdaae19110deae2c20a08ea53cab451fc00bb +Author: Steve Wise <swise@opengridcomputing.com> +Date: Fri Feb 8 13:51:37 2013 -0600 + + Remove useless dma_addr_t define. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit c551f4632cfcd284ad82d1d9b36d1449d109a5de +Author: Steve Wise <swise@opengridcomputing.com> +Date: Fri Feb 8 13:51:00 2013 -0600 + + Disable strict aliasing warnings. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 695a5a4be21f44d49999c83e6ac0699ce90d97c7 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Nov 9 09:50:32 2011 -0600 + + Spin release 1.2.0. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 721cfb11ca5697d017bc60167805aea9bbb13ba0 +Author: Vipul Pandya <vipul@chelsio.com> +Date: Mon Nov 7 15:08:45 2011 +0530 + + libcxgb4: Reset flush_cidx before incrementing cidx. + + Signed-off-by: Vipul Pandya <vipul@chelsio.com> + +commit db4fe38c7ee2b3ad9dc8c33f2b54f0c8cdf8b4d2 +Author: Vipul Pandya <vipul@chelsio.com> +Date: Mon Nov 7 15:06:29 2011 +0530 + + libcxgb4: Fix multi-flush logic path....again + + Signed-off-by: Vipul Pandya <vipul@chelsio.com> + +commit 19198bdc2f7feb05babcc2a544ae8b48e4943c41 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 98545f3a8cbe1670efad080cf908db42269f76ff +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 86ba968706b3dc8cb232a303201bb03a2d919c88 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 2b6563ed5b377dac56c218b809d387089d70312d +Author: Vipul Pandya <vipul@chelsio.com> +Date: Sun Oct 23 16:50:16 2011 +0530 + + libcxgb4: fixed compilation warnings + + Signed-off-by: Vipul Pandya <vipul@chelsio.com> + +commit c5c120969c22a04d34adc566085192afc99d0db9 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 075adec1159606303b40f4b29ef3cea7ab780ac2 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 320285a3a3a93a614e24a78f7a68780d7791e3c5 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 4c98bebe97aeef1c5cda2f071eb9c1d4fa29c37e +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 8196f85bdefb1511d6d834240a92fdaf815834b8 +Author: Vipul Pandya <vipul@chelsio.com> +Date: Fri Oct 21 17:31:03 2011 +0530 + + libcxgb4: Remove auto generated ltmain.sh file. + + Signed-off-by: Vipul Pandya <vipul@chelsio.com> + +commit 230d12f42d143eeb53d8c4935ba27620c13e6165 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 2df0677b22aebb7a22d0e8ca11beb90250b363c7 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 4eaf4b9added6ca660ef2f9363b24d754185fddf +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit b15d02248dd1029706d07fa229767d8b68d16c65 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit b2c7499eab73cf28cbd9cf86f6ea134e2450cdd3 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit 60a30673a4072b6727e7266f7782607ddcbc8de7 +Author: Vipul Pandya <vipul@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@chelsio.com> + +commit c8651d01a2d69d83caff8c01b32be0b23624d8da +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu Mar 10 09:45:00 2011 -0600 + + Spin release 1.1.1. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit ace467085deb7327522faeb19e20e13d691f66a2 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu Mar 10 09:34:11 2011 -0600 + + Flush MA FIFO for on-chip queues. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 7cb87f46c1784c791d29646104ab355ed920747d +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 7652d71daadda0c3aba9b96311ea623a1e324d77 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 16:57:04 2010 -0500 + + Spin release 1.1.0. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit ed05d22592bc96987635b2c255a99663f286b812 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 16:56:51 2010 -0500 + + Support all T4 device IDs. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit b051a2ea9dc7b6ffa08f955e60b331e42fec8672 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 62f1363bb716e2283f9e2b885e5f02a6d5c692d1 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit d51e041839254d656cc260dba3f26a7c9d73aa56 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 14:06:16 2010 -0500 + + Raw QP implementation + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 8f55539d0b8aea70084edf31687e590cf5a57221 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 14:03:55 2010 -0500 + + Add compile-time user mode rdma stats. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 2e3531bbd91d7a6f057b3503132aef5e64adb548 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 13:57:03 2010 -0500 + + Support on-chip SQs. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 65bb173b86c2e0a9ff5f877e4d3951cb8daa6e97 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 13:54:44 2010 -0500 + + Work around TERM CQE hw bug. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 6bb37d1f72652d4ed0c1972bc673f4418cc7a856 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Wed Sep 15 13:54:44 2010 -0500 + + Zero out padding in iSGLs. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit aad128404c494ec4779055b5e550c2d7de7d5ca9 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu Jul 22 14:58:51 2010 -0500 + + Spin release 1.0.4 + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 07ac253a8a479fd59fe654baf5a94ffc1de13765 +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 3394198639f811c86ab519c43197a9b724435cb0 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu Jul 22 14:56:53 2010 -0500 + + Support T420 and T440 cards. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 311dd1c8ec3e38287895053dce52dfef5ed5f0b1 +Author: Steve Wise <swise@opengridcomputing.com> +Date: Fri Jun 11 10:40:53 2010 -0500 + + Spin release 1.0.3. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit a62d7cf38f7b6c731486ff969ee7e3a4238ebc3f +Author: Steve Wise <swise@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@opengridcomputing.com> +Date: Thu May 20 15:52:59 2010 -0500 + + Spin release 1.0.2. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit dc1ea232e8ece4ba53d2496befad14bd433e2e3e +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu May 20 15:48:37 2010 -0500 + + only insert sq qid in lookup tables. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit 00c60fd47b71dac42d864662567701e2618ff45d +Author: Steve Wise <swise@opengridcomputing.com> +Date: Thu May 20 15:47:37 2010 -0500 + + Update some driver limits. + + Signed-off-by: Steve Wise <swise@opengridcomputing.com> + +commit f25661e19d728a0a33a221c0646a9fce9b160f8b +Author: Steve Wise <swise@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@opengridcomputing.com> + +commit 8c224aca8f1acd219010e46da538ae4c9a4f9d1a *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410290115.s9T1FnTv094112>