[openib-general] Re: [PATCH] ib_mad: prevent duplicateoutstanding MADtransactions with same TID
Sean Hefty
mshefty at ichips.intel.com
Fri Feb 24 09:52:33 PST 2006
Hal Rosenstock wrote:
> What's the TID issue (separate from the RMPP issues on top of it) ? Is
> it the potential duplication of the TID from different hosts adding
> complexity on the SM/SA side ? Is that a fair assesment ?
If we ignore RMPP, the TID issue as far as I can make out is this. Duplicate
requests may be received by a ULP, resulting in duplicate responses. Looking at
the code, I think that the only real issue here is some inefficiencies. (Plus a
bug that can result in matching RMPP ACKs with the wrong transaction, but this
is a separate issue.)
Adding in RMPP, the inefficiencies grow. For example, host A issues a path
record query, times out, and resends the query. The SA on the other side
currently sends two responses, but both responses will have the same TID. When
segments are received by host A, he will interpret all segments as belonging to
one response, with the second response containing duplicated MADs.
What I believe will happen is that one of the responses will be reassembled and
returned to the user. On the SA side, all ACKs will match with the first
response, and the second response will time out, never getting past the first
segment.
I was thinking about how we can reduce some of the inefficiencies. Currently,
we only track if a request is waiting for a response or not. We can add a new
state indicating that a response is in progress, which would be set when the
first segment of a response is received. This would be used to suppress
duplicate requests.
On the receive side, I was considering adding an API that the user would invoke
to indicate that a response was being generated. The MAD layer would queue this
information, and a received request would be checked against this queue to
determine if it were a duplicate. When the response is sent, the queued
information would be removed. I think that we may be able to use such an API to
support dual-sided RMPP as well.
- Sean
More information about the general
mailing list