Reputation: 382
The Spec says: The PSN of the retried RDMA READ request need not be the same as the PSN of the original RDMA READ request. Any retried request must correspond exactly to a subset of the original RDMA READ request in such a manner that all potential duplicate response packets must have identical payload data and PSNs regardless of whether it is a response to the original request or a retried request.
It seems that a retransmitted READ must return identical data to the original.
But consider this scenario:
a READ followed by WRITE followed by the original(retransmitted) READ. What is the expected response in this case? I tried this and it returns the latest value which is what I would expect. My question is why do we not return the original data?
Upvotes: -1
Views: 211
Reputation: 4820
To return the original data, the RDMA implementation would have to buffer the read data indefinitely. This is because the InfiniBand transport doesn't acknowledge read responses, so the only way for the responder side to tell that the RDMA read operation has been completed is if the initiator side sends enough new RDMA read requests, showing that it has completed the previous ones.
Upvotes: 0