Re: [PATCH] IB/rxe: fixes for rdma read retry

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2018-06-13 at 18:48 -0700, Vijay Immanuel wrote:
> When a read request is retried for the remaining partial
> data, the response may restart from read response first
> or read response only. So support those cases.
> 
> Do not advance the comp psn beyond the current wqe's last_psn
> as that could skip over an entire read wqe and will cause the
> req_retry() logic to set an incorrect req psn.
> An example sequence is as follows:
> Write        PSN 40 -- this is the current WQE.
> Read request PSN 41
> Write        PSN 42
> Receive ACK  PSN 42 -- this will complete the current WQE
> for PSN 40, and set the comp psn to 42 which is a problem
> because the read request at PSN 41 has been skipped over.
> So when req_retry() tries to retransmit the read request,
> it sets the req psn to 42 which is incorrect.
> 
> When retrying a read request, calculate the number of psns
> completed based on the dma resid instead of the wqe first_psn.
> The wqe first_psn could have moved if the read request was
> retried multiple times.
> 
> Set the reth length to the dma resid to handle read retries for
> the remaining partial data.
> 
> Signed-off-by: Vijay Immanuel <vijayi@xxxxxxxxxxxxxxxxx>


This has been left to languish due to lack of competent review (both
Jason and I beg off on this level of technical review of rxe).

As a result, I've decided to go ahead and put this into for-next at the
earliest possible stage so that it gets the most testing possible before
the next merge window.

So, thanks, applied to for-next.

-- 
Doug Ledford <dledford@xxxxxxxxxx>
    GPG KeyID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux