Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933571AbbKRQgH (ORCPT ); Wed, 18 Nov 2015 11:36:07 -0500 Received: from mail-bl2on0058.outbound.protection.outlook.com ([65.55.169.58]:43162 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755480AbbKRQdF (ORCPT ); Wed, 18 Nov 2015 11:33:05 -0500 Authentication-Results: spf=pass (sender IP is 63.163.107.173) smtp.mailfrom=sandisk.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac160a69-f79f76d000007db2-a6-564ca83b6045 Subject: Re: [PATCH 4/9] srpt: chain RDMA READ/WRITE requests To: Sagi Grimberg , Christoph Hellwig , References: <1447422410-20891-1-git-send-email-hch@lst.de> <1447422410-20891-5-git-send-email-hch@lst.de> <564BD1AF.60200@sandisk.com> <564C41B8.2080904@dev.mellanox.co.il> CC: , , From: Bart Van Assche Message-ID: <564CA83B.4060403@sandisk.com> Date: Wed, 18 Nov 2015 08:32:59 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <564C41B8.2080904@dev.mellanox.co.il> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpikeLIzCtJLcpLzFFi42JZI8azSNd6hU+YwbNmWYv/e46xWaxcfZTJ 4vKuOWwWzw71slh0X9/BZvH6+FMmBzaP6TM2sXpMbH7H7rH7ZgObx+dNcgEsUVw2Kak5mWWp Rfp2CVwZv66ZFzwSrnj99wRbA+Mzvi5GTg4JAROJV0e3MEPYYhIX7q1n62Lk4hASOMEo8W/q Y0YIZwejROe014wwHdcvrWSHSGxilNjyYCeQw8EhLGArcehgAUiNiECOxP+Og1CTNjBKTHvV yASSYBYIkrjwajILiM0mYCTx7f1MMJtXQEviyKTPYDUsAqoSh9e1sYLYogIREhMnNLBC1AhK nJz5BKyeE6j3xosnTCB7mQXsJR5sLYMYLy+x/e0cZpC9EgJ7WSV6LjwDO1pIQF3i5JL5TBMY RWYhGTULoX0WkvYFjMyrGMVyM3OKc9NTCwyN9IoT81Iyi7P1kvNzNzGCY4YrcwfjiknmhxgF OBiVeHgTFnuHCbEmlhVX5h5ilOBgVhLh1a72CRPiTUmsrEotyo8vKs1JLT7EKM3BoiTOa92i FiYkkJ5YkpqdmlqQWgSTZeLglGpgtKg4ZPH+p7tYiU7opCZp2T9BjPkCy7KPqcyQkJJz9Z9Q bGGn17WM088zMPxxLduHffb/c+PN2e+/92GcyFZ4ZVHSj6sXdPZslrmx5cXNbz9yN+ncW/1j 14tPYWePv5j1qdjVo+Jb32rr+TVmL089vL2/ue+Hi7HjrSdn1ViqTCe1Xu06ZHt7ihJLcUai oRZzUXEiAJx+CI2VAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJJMWRmVeSWpSXmKPExsXCtZEjRdd6hU+YweMufov/e46xWaxcfZTJ 4vKuOWwWzw71slh0X9/BZvH6+FMmBzaP6TM2sXpMbH7H7rH7ZgObx+dNcgEsUVw2Kak5mWWp Rfp2CVwZv66ZFzwSrnj99wRbA+Mzvi5GTg4JAROJ65dWskPYYhIX7q1n62Lk4hAS2MAo8fXI d+YuRg4OYQFbiUMHC0BqRASyJLbfWohQM+1VIxNIglnAS2Lb/D42EJtNwEji2/uZLCA2r4CW xJFJn8FqWARUJQ6va2MFsUUFIiQmTmhghagRlDg58wlYPSdQ740XT6Bm2krcmbubGcKWl9j+ dg7zBEb+WUhaZiEpm4WkbAEj8ypGsdzMnOLc9MwCQ0O94sS8lMzibL3k/NxNjODA5Yzcwfh0 ovkhRiYOTqkGxsR420JruXbhg2Ez1J1TTwtd5rU/oL32RKgrc+j0tpPn2wRvyX9QMY995LTQ tvJ7qMj9kwezYj3eNsce4pEW/Z8hr/Xz2f8dBisbvLZV6l9wPmhww24O39pHhZs0YgrvtZT+ 75OIeD4197KM9JNPTnN2NP9+uiKlK2PWfpWLP3O+/bI3q71jocRSnJFoqMVcVJwIABdPgOoM AgAA X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD021;1:WgSRxRVdyLDHh1LOk7gqNXtESnYv788t05s+wMh6eNxs1t4FeOBbFiVbvs6VDNKlQDik2bQ58eOFiV8AEsp62v7EVQcl/PducA0bLDbM3zQ5aiVMMfqrNSVpV9XFEFD6E0ig3zWeB7UuU5kcj8+CtUHEqlMMH5JPyql6Ynaf6qq8I+/+BoPFkZKFJ6bpKYSPWCPSifwMtHgFh4piMgtTPyiFjGA13mim75I7l4BczmAb7GiByt+DDKf3fP5dkWauAR3FhcmsSdwYgrvl8ra1Im/Fi1fe9T7mV5yV/wV71fpXOPmYlw+9kBtSqcMBvJCxH73Fg305cLNRmAnmGBcw7UsY68ZfluLboYnFcQWu88faTpupDq4MZs0hElgI1bY3+gSCTA0ErILmiwNq/WQ7wSyWDOtgNksuOlzMv9Abfww= X-Forefront-Antispam-Report: CIP:63.163.107.173;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(189002)(199003)(377454003)(479174004)(24454002)(77096005)(2950100001)(93886004)(92566002)(83506001)(23746002)(230700001)(586003)(87936001)(86362001)(33656002)(5001960100002)(50986999)(11100500001)(36756003)(80316001)(19580395003)(5007970100001)(189998001)(97736004)(65806001)(47776003)(64126003)(81156007)(65956001)(5001770100001)(4001350100001)(5001920100001)(76176999)(65816999)(50466002)(5008740100001)(59896002)(106466001)(87266999)(54356999)(69596002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR02MB1384;H:milsmgep12.sandisk.com;FPR:;SPF:Pass;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1384;2:L0jkfEhJMPJr0hlFz+Yqml8yfH75h81O6BEYsBBOyEOCvSbHWX/Sq5yJp+n5tnkX08x7vcxD4mWbq3RqamPFquhXD6p8/TJcuaQzJOO2oAybyyfghb4z8iYzTkOuEsEm5OPbXtOJhjG1PetXsvsyvQ==;3:HRjnYY6X93Jsgo7MBfKBfpuL7quETog9FMzN26Wg69w/IEb5RWtZXrlRY2KXXMBnDj8tIqM1pr663m3bGGW3fTqOUJO9k2/OqvHgeN43MIZoxqXJ1sTROZ6KlhxmEv/rCc9/luN8HCfSS8YyfpU0RZoCIynYydvjYJBgyjCSRZZiITCJlm3xFP3nsbD7TQPmr8yCt5MS4iVk4lmhBpJ+3EL8kDFLB4Fiv9qrkDcE0LOYNiDxctI7dS7uS7wZimZbGW0MS6mfHH6fpQvq0ikWOw==;25:GpL+D4JWfiHoTd19UVb++WvvhS+7RElAuE5kTKWOXU5qH+w7lo3sw7A3paO5XKPEoadrxn+7Em2/uwbIclXDgnS6NuhtxxTMNpjbQwaxymlXIbFGBeZ2gUjIKEXomBOdzTSJO+xRaCY3DJhRe7HhjDCIFaxNVW2UkMQo5QfPLgvkv83gRacZYSXK23kEjOBhLEnwDaaP8+x5ruYtTfnXPT4OrVMmTOPWNSOrwfcXxJK4QaymD8Fwd7C22vGH3QCC X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501001);SRVR:CY1PR02MB1384; X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1384;20:uLOOMykWV6z/jIRqyPGrVYUebsEPi8H525TDsjg4EXJBpVlTDGDDzTrRI1ZOmEW+RfzGV5tAiMyNKa3aOL6J/+h7H5ur95DBy3fCuUAYjS2BVAAzSTZrimSWRO52CxHXKslRRVGiBSdHSf3khchUVGJkfCkTcl5YYb2BpXtN/PvjwhIzIrlN7lhMJ3rgcqLYIVzR0sKPVXdrx7Sw//alrI5c6DkZSmet4+Znn1BWT14KcNTvc56PVTbb4ZMT+ci7Oq+vaZKkdCHeYa33kkCxUbQ/FxmRgxhK7ed42LW8l4CRwLjQ9VZnavbbRJBmK7u3i+4iw7wBCe5pLrJ+L9Y6t0TBVNSw2CZBRhORn51fXriaW+fmGkDtTxHzHlinVdSWBsDXiZHP27acLsj+I76Rxdpd3naYYzUc0ZKOsIHxG/mdv3IHgBC5iLaSQsSI1bSvHZijXVwVkgWRKh8RvPNciQ5I7b+Lo/4uw+5zmFSFvzYJKw712jkyeCMJqUm8aqG1;4:qtD2uz3q3s45ERqDPxyq2prX5V5W4vaoq1GNylBJMVXinRlRsAXVBa+WsWpYKBOZP+n3+4K0xyLicohkpyNCcuKF7w4ppbLbHU1FAATo/MxMFRNU2YOke+8ACo1Q7bimDX/xytPxlA593J8zM9ofC9iT74qe4pkZvI6UkkR4jdykH+QpzGWlvOGxmhmNM63LbOJFRcEP1PCEsnGV0o5Ovbc93pMm61BRRkkhQ+X8fm+pfMFOcOcXat793LwQp41NS4GbV9HFGpD8uT9A/DAiiSI1J3B7FqzLUUF9HVjzqPgM4o7KuSlyGpIyrfVSklULB0IZ2OaruCAhiNIed5aZACqFjtxGrvuQHmHD++mV0HgQ9p82OO2j3bgOKkJIRgQk X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001);SRVR:CY1PR02MB1384;BCL:0;PCL:0;RULEID:;SRVR:CY1PR02MB1384; X-Forefront-PRVS: 0764C4A8CD X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY1PR02MB1384;23:dxf1Noaa/V2QiQg733ZTrXWQEiZoqwi/eIl9v?= =?Windows-1252?Q?XpxyA5Bv8akTAjBPjGDbdARlIJ4Eida1i70dC2Qw5AxhpTN0JzobG7Ib?= =?Windows-1252?Q?/lr4ouyRNKeEfGY8pmja7calZbFe37k1mxZZStqiiIBgEfMGXxg+hJLy?= =?Windows-1252?Q?f5zR+I4thEFEdV+YRti255c5Iw6KDxuyrUBqJes2zXfuegHpTNPA+9Na?= =?Windows-1252?Q?JZL6kxkfpBzDQ+LseMKDwUq8Vf6FQxwt188uyNPB5d5nLx3wKz/K/kQb?= =?Windows-1252?Q?fHzUsmyDdaK2ymYy4WHNw1iMWwrxJEuoNIQgJi8h9Sxb9EiZyAEu4WKr?= =?Windows-1252?Q?2mPJGpfHTcqBhxj4Atg5ItDRW7DV8LbVxPeuVj2UntQv8MkKBppnDS8T?= =?Windows-1252?Q?uJHplQmqLQ8OLuQABZYcZ2jBGhKrCgUrnOi5N4forZKJt9AXbxjG04DG?= =?Windows-1252?Q?xxLG3aeTJAx1Y19Q2pPB3/QesnK10LpiD6pbCkd6xpXGCc8XygMtdYY8?= =?Windows-1252?Q?0YBodbha9g0ycRz255t78UMZ7p6sDYNSTjovU92YZvzEcqikIV/Lnl+w?= =?Windows-1252?Q?TvR+WeldXHfOdmR+KTYRJNObrfy5CjPXKJ4W1rRil+oLaL2ctH185buL?= =?Windows-1252?Q?TtvWRdB76azgjQKvVKhI3IUMd0gFZFU12r0+a8nBtMuwd/0bO4lRO1Tt?= =?Windows-1252?Q?nUjxRRqRc2fju9L6GAJF0QK8vrelkuLb2Ym21CScgTJqkpDsJPpdgkd0?= =?Windows-1252?Q?NEugqT9bmE46CyvsdKh4521nSSKRn+KQk0uvzdNXEFqafYFDmPTVLObD?= =?Windows-1252?Q?yZMA1VJPe+Vo/kfn45cYA8bzVtufpGc/B1BtScvwA4lXpR33ah9NUFcw?= =?Windows-1252?Q?lccdNfpQac4idd2FdIzrWi+zA/zkKV3Qg+6LmhGD9kX7GSNhOGZap0RQ?= =?Windows-1252?Q?1Y/+SlnO+qKVAJCA8fmpEY+dVQyWov8sTjCJu8bkRdMQoyT8otpL70Su?= =?Windows-1252?Q?YqJ4aOCR8amEwxvOTtYOKO9VFR5aJr014YXA0hBgBUObQZpw2Rb14fWl?= =?Windows-1252?Q?MlzktoTSBmKCNzQKA0N5ysby78mnpH4vZIONJR1nNzM9DOQeN7H283Bq?= =?Windows-1252?Q?F3yEve/SDuKno+fbxCAzFdamrFDUwDJqGqb/RzioTJFlH8GdEWVGf0/g?= =?Windows-1252?Q?fY5ICMzikm9uQGfdR2cpqmu+QFBKfplwL8ePUVCQ7eXst04gsZeCi4pL?= =?Windows-1252?Q?+41EF7tzVs8F3Ox3rDRVWsVfDbDSAPyH0kkGhNSyzIGJMdPn0lA3O1uu?= =?Windows-1252?Q?tYI?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1384;5:fWdYp8xNu2rX2nKJzWdv7z384lJ1yvLQ5OusJ11l5+oV3yIQrGguj3eTwq4uFvq5WiXYiewo1h7JL763vGbybVBNEdpxQRykFGgz8t4AmtAq+SpxoGPZJQnKyoFRJxEXlSPlx92SIXIBtDjTilcasw==;24:AzYbMKJB+6UTeIOUMJ3TbmZjqW1frbLi3qo1GpHqHdofyCQMiLEBY6o4gYeKG4+RVythoAN1djwmhNYCm0utiPzc9CwoweplGIvCET09jbw=;20:kOttd2UUCt/fuU+acI+zDM2eXNTfrbOjww11D9I4QvTDUyqvp06jAfMfSTOnDJHrkoWPDiy2XcLwzLiKdlcwWoHXOwqHBH5ERduHboLe0hhKhAxLTVqTI2G3A92VUIp8iP0ull8WYJ8jPB+FHPpzTsutiShl7qSmOIAFcMlNSpVT/k9OTPz+Jq4lIAsdPBru6x+VD1PkrnbVxudmaD25ngeDyyfQEnE18dShi2yBTwXzTiy8RMa8XpqywMNpe0E4 SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2015 16:32:59.6259 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d;Ip=[63.163.107.173];Helo=[milsmgep12.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR02MB1384 X-Microsoft-Exchange-Diagnostics: 1;CY1PR02MB1102;2:PHrx76QBLEYoc81jJKa7rDq9Fv7N0yqwfpQzHAY3urFZe9GHG4xKnqIg10DnbEO72egfyMg0xgq6nNGqWkK8QGIy/ZSX6skvCmyzEVSuLx+t0/JhtXfWkMuYDg+rYDvl4hrX9wPd5jK+Y7jTN0TSC6eQuN0eUIN4bNa61hYYRp8=;23:88iaSts64DYcD5GRzgZz4q/wtgeF7QIlc62xbufz25KmmmhPn+/djSJLta5wfMR+VJqLyUSZw/xYXiOL6AJsnsjY/E3g8HvPmXgppcL3QQsJIgVYdpQsMO5nqkyywZgYvc7Y+OULJrx0gx2a07z3MJwZ491gYGkm4tY7SMxHGnckhcR3rCFXRx4io21YjqDd X-OriginatorOrg: sandisk.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2716 Lines: 64 On 11/18/2015 01:15 AM, Sagi Grimberg wrote: > On 18/11/2015 03:17, Bart Van Assche wrote: >> On 11/13/2015 05:46 AM, Christoph Hellwig wrote: >>> - ret = ib_post_send(ch->qp, &wr.wr, &bad_wr); >>> - if (ret) >>> - break; >>> + if (i == n_rdma - 1) { >>> + /* only get completion event for the last rdma read */ >>> + if (dir == DMA_TO_DEVICE) >>> + wr->wr.send_flags = IB_SEND_SIGNALED; >>> + wr->wr.next = NULL; >>> + } else { >>> + wr->wr.next = &ioctx->rdma_ius[i + 1].wr; >>> + } >>> } >>> >>> + ret = ib_post_send(ch->qp, &ioctx->rdma_ius->wr, &bad_wr); >>> if (ret) >>> pr_err("%s[%d]: ib_post_send() returned %d for %d/%d\n", >>> __func__, __LINE__, ret, i, n_rdma); >> >> Hello Christoph, > > Hi Bart, > >> >> Chaining RDMA requests is a great idea. But it seems to me that this >> patch is based on the assumption that posting multiple RDMA requests >> either succeeds as a whole or fails as a whole. Sorry but I'm not sure >> that the verbs API guarantees this. In the ib_srpt driver a QP can be >> changed at any time into the error state and there might be drivers that >> report an immediate failure in that case. > > I'm not so sure it actually matters if some WRs succeeded. In the normal > flow when srpt has enough available work requests (sq_wr_avail) they > should all succeed otherwise we're in trouble. If the QP transitioned > to ERROR state, then some failed, but those that succeeded will > generate flush completions, and srpt should handle it correctly > shouldn't it? > >> I think even when chaining >> RDMA requests that we still need a mechanism to wait until ongoing RDMA >> transfers have finished if some but not all RDMA requests have been >> posted. > > I'm not an expert on srpt, can you explain how this mechanism will help? Hello Sagi, As you know events like a cable pull can cause some of the RDMA work requests to succeed and others to fail. It is essential that all RDMA work requests related to the same SCSI command have finished before the buffers these requests operate upon are reused. The purpose of the SRPT_RDMA_ABORT request is to wait for the RDMA requests that were posted without IB_SEND_SIGNALED and for which no error completion will be received. BTW, I think this consideration applies to all SCSI target drivers and not only to SRP target drivers. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/