[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