RE: [PATCH 3/9] IB: add a helper to safely drain a QP

From: Steve Wise
Date: Mon Nov 16 2015 - 14:03:34 EST




> -----Original Message-----
> From: linux-rdma-owner@xxxxxxxxxxxxxxx [mailto:linux-rdma-owner@xxxxxxxxxxxxxxx] On Behalf Of Sagi Grimberg
> Sent: Monday, November 16, 2015 12:38 PM
> To: Steve Wise; 'Christoph Hellwig'; linux-rdma@xxxxxxxxxxxxxxx
> Cc: bart.vanassche@xxxxxxxxxxx; axboe@xxxxxx; linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> 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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/