gregory james marsh wrote:
Hi,
I'm looking into the use of Infiniband send/recv Buffers (ibv_reg_mr) in
the C++ RDMA connector code (M4 RC3). As far as I can tell, the buffer
size is based on the ConnectionSettings.maxFrameSize specified by the
client via the following object chain:
ConnectionSettings.maxFrameSize
|
RdmaConnector
|
ConnectionParams.maxRecvBufferSize
|
AsynchIO.bufferSize
|
createBuffer(bufferSize)
I've noticed that default maxFrameSize is 65535 and clients can set it
LOWER without any problem. I tried setting it to 200,000 just to see
what would happen. It appears the code iteratively tries to reduce
large maxFrameSizes to something below 65535:
$ grep createBuffer broker_trace.txt // My own tracing
rdma_wrap.h: QueuePair: createBuffer(3392)
rdma_wrap.h: QueuePair: createBuffer(3392)
The maximum frame size is a 16 bit value so 65535 bytes is the maximum
value it can take. The 3392 value is the result of truncating 200000 to
16 bits.