[ofa-general] Re: rdma cm timeout option, was [iWARP issues]
Talpey, Thomas
Thomas.Talpey at netapp.com
Fri Nov 2 12:08:53 PDT 2007
At 01:17 PM 11/2/2007, Sean Hefty wrote:
>>I still don't understand why you would want to do this. TCP already
>>implements the best timer you could hope for.
>
>Because TCP isn't running on top of IB. And IB doesn't automatically establish
>connections for the user on the passive side.
Sure, the CM needs a timeout when handling its own transport connections
as it does over native IB. But if it's running over timeout-aware transports
such as TCP, I think it should defer to them.
>>But, if all you want to do is abort an in-progress connection attempt,
>>can't you just run a timer to signal you and thereby interrupt the
>>connect(2) in progress?
>
>Yes - that's one of the options I'm considering. But either the ULP can be
>responsible for canceling the connection request, or the rdma cm can
>manage this
>for the user.
>
>These are the possibilities that I see:
>
>1 Leave API unchanged.
>2 Allow ULP to set number of connection retries.
>3 Allow ULP to set connection timeout.
>4 Allow ULP to set timeout per retry and number of retries.
Options 2 and 4 are not a good solution, IMO. They don't actually specify a
timeout and depend on events beyond the ULP's control. So, my opinion is
that it's down to #3.
Is the rdma_connect() API interruptible? I.e. if the connection is running
in an application with a TTY associated, does it abort if the user types ^C?
What else causes the CM client to abort?
Tom.
>
>The 1st option requires ULP to manage shorter timeouts. From what I can tell,
>the 2nd option matches a non-portable Linux setsockopt() capability. The 3rd
>and 4th options can be applied to IB connections, but do not easily extend to
>iWarp.
>
>Of these, I'm leaning towards the first option. But this doesn't allow for
>longer timeouts.
>
>- Sean
More information about the general
mailing list