Messages in this thread | | | From | "Steve Wise" <> | Subject | RE: [PATCH 3/9] IB: add a helper to safely drain a QP | Date | Mon, 16 Nov 2015 13:03:27 -0600 |
| |
> -----Original Message----- > From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma-owner@vger.kernel.org] On Behalf Of Sagi Grimberg > Sent: Monday, November 16, 2015 12:38 PM > To: Steve Wise; 'Christoph Hellwig'; linux-rdma@vger.kernel.org > Cc: bart.vanassche@sandisk.com; axboe@fb.com; linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH 3/9] IB: add a helper to safely drain a QP > > > > After looking at the nes driver, I don't see any common way to support drain w/o some serious driver mods. Since SRP is the only > > user, perhaps we can ignore iWARP for this function... > > But iser/isert essentially does it too (and I think xprtrdma will have > it soon)... > > the modify_qp is invoked from rdma_disconnect() and we do post > an 'empty' wr to wait for all the flushes to drain (see > iser_conn_terminate).
That won't work for iWARP. Is this code new? I didn't see any errors that would result from this code when I tested iSER over cxgb4 with the old iwarp support patches.
Perhaps we need another way to do this? Like a completion object in the QP that gets triggered when the SQ and RQ become empty after a transition to ERROR (and CLOSING for iwarp). Then a core service that just waits until the QP is empty. Implementation of this design would hit the providers though since only they know when the flush is completed.
Alternatively, I could enable post-while-in-error support in cxgb4 and ignore the spec in this regard. But I'd rather not do that. :)
Steve.
| |