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

Sagi Grimberg
2015-11-17T08:54:10Z

> 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.

It's there since ~3.17 I think...

>
> 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.

ULPs need a drain functionality, so ib_drain_qp() is the way to go...

How about we add a drain_qp() callout and have:

if (qp->device->drain_qp) {
qp->device->drain_qp();
return;
}

IB drain qp logic...

This way iWARP devices can have their own magic on how to implement this
functionality.

Thoughts?