[openib-general] A new simple ulp (SPTS)
Jeff Carr
jcarr at linuxmachines.com
Tue Jun 21 12:47:58 PDT 2005
Here is a simple ulp to test transfering pages between
machines on an infiniband network. I modified Sean's cmtest to be a
standalone thread that listens for incoming connections (ib_cm_spts.ko).
A seperate module (spts) registers itself so that incoming connections
can be initialized. This code at least managed to work for connecting a
small number of nodes together (less than 10). (n)(n-1)/2 connections.
However, something still goes wrong after MAX_CQ + 1 transfers, just
like the cmtest code. If anyone has any ideas on what is wrong with what
I am doing here that would be helpful. It must be something really
simple I just don't understand about the IB stack.
Specifically, when I create the cq I pass in SPTS_IB_CQ_SIZE:
node->recv_cq = ib_create_cq(node->device, spts_comp_handler,
spts_event_handler, node, SPTS_IB_CQ_SIZE);
and then I set qp_attr.cap.max_send_wr = SPTS_IB_CQ_SIZE.
After that initilization, I fill the qp using ib_post_recv().
When I get to the SPTS_IB_CQ_SIZE + 1 message to send, everything stops
transfering. I'm not sure what the correct method to "clear" out entries
so more buffers can be posted to recieve into.
Enjoy,
Jeff
Signed-off-by: Jeff Carr <jcarr at linuxmachines.com>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cmspts.diff
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20050621/4ca0d6bd/attachment.ksh>
More information about the general
mailing list