There must also be some limit to how many cqe's you can allocate with ib_post_recv(). (?)
Each receive posted will generate a cqe. That limit is controlled by the message_count variable.
There must be some way to delete/free these? They don't get re-used I take it? Surely it wasn't intended that ib_post_recv() be initially run for each transfer expected in the lifetime of the connection. :)
There needs to be one cqe reserved for each possible completion that can be outstanding at one time. If you know that the number of completions will be high initially, and then drop to a smaller value, there is a verb that can be used to resize the CQ. (I don't believe it is implemented in the openib stack at this time.)
There must also be some information about what is known about these cqe's. How do we know if one of them was used for a transfer from the server to the client or from the client letting the server know the transfer was recieved?
In this case you won't know what's on a cqe until you poll the completion. An alternative way of structuring the code is to create two CQs, and tie one to the send queue, the other to the receive queue.
- Sean _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
