What about moving posting of receive buffers into main thread. With
SRQ it is easy: don't post anything in CPC thread. Main thread will
prepost buffers automatically after first fragment received on the
endpoint (in btl_openib_handle_incoming()).
It still doesn't guaranty that we will not see RNR (as I understand
we trying to resolve this problem for iwarp?!)
I don't think that iwarp has SRQ at all. And if it has then it should
have HW flow control for it too. I don't see what advantage SRQ without
flow control can provide over PPRQ.
I'm agree that HW flow it is no reason for SRQ.
So this solution will cost 1 buffer on each srq ... sounds
acceptable for me. But I don't see too much
difference compared to #1, as I understand we anyway will be need
the pipe for communication with main thread.
so why don't use #1 ?
What communication? No communication at all. Just don't prepost buffers
to SRQ during connection establishment. Problem solved (only for SRQ of
cause).
As i know Jeff use the pipe for some status update (Jeff, please correct
me if I wrong).
If we still need pipe for communication , I prefer #1.
If we don't have the pipe , I prefer your solution
Pasha