Hi Bernard,
Hi Stefan, much appreciated! I think the erdma driver did a good job implementing something similar, but w/o the need to look into MPA v2 specifics, especially the extra handshake in RDMA mode.
As far as I see they introduce a dedicated ERDMA_CM_WORK_CONNECTTIMEOUT and the timeouts are: > +#define MPAREQ_TIMEOUT (HZ * 20) > +#define MPAREP_TIMEOUT (HZ * 10) > +#define CONNECT_TIMEOUT (HZ * 10) If I read the code correct that would be 10 + 20 seconds before a RDMA_CM_EVENT_ESTABLISHED must be posted. I'm using just one timer (#define MPAREQ_TIMEOUT (HZ * 10)) that spans the tcp connect as well as the MPA handshare. I don't think we should care in what portion the time was spend between tcp and mpa, what matters for the caller is the overall timeout to get a valid connection. So I think a single timeout is better.
Did you take care of the MPA v2 extended connection establishment stuff?
I'm not aware that I have touched (or had to care about) that at all here.
I'll have a look asap, I am just down with a nice COVID infect. This to let you know I am not ignoring, but have another interesting experience which takes most of my time 😉. Will come back to it asap!
Get well soon! Thanks! metze