Re: [PATCH 4/9] srpt: chain RDMA READ/WRITE requests

Christoph Hellwig
2015-11-20T10:20:57Z

On Wed, Nov 18, 2015 at 08:32:59AM -0800, Bart Van Assche wrote:
> 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.

I think everyone understand the theroetical issue, but we'd like to
see a practical case that the implementation in isert and my proposed
srpt one don't handle.

Given that chained WRs must not be reordered the HCA must also give
us the completions in the order we submitted them. Because of that
the previous WRs must have been completed by the time we get the
notification for the last one which usually does the cleanup.