[ofa-general] ibv_alloc_pd seg fault....

Peter W. Morreale pmorreale at novell.com
Wed Jul 30 08:23:25 PDT 2008


Hello all, 

I'm a noob attempting to create a client/server using RDMA as a
transport and running into what is clearly a coding issue on my part.  

Right now, the client-side of my app is seg faulting in ibv_alloc_pd(),
and I'm a little confused as to why. 

I'm using OFED 1.3 on SLERT SP2 (SUSE Linux Enterprise Real Time).  I'm
using Roland's client/server code as an example.  This code sends two
integers from the client, adds them on the server side, and sends back
the result to the client.  This code works on my systems.  

Right now I'm to the point of sending a simple test message from the
client to the server.

The app is constructed such that each side is both a client and server
to the other side.  During initialization, I'm creating a pthread to act
as the server to the other side. 

The app creates two channels, one for use by the client-side, and one
for use by the server-side.  I assume this is required, correct?  

The client-side then creates a connection to the server via:

 rdma_create_event_channel()
 rdma_create_id()
 rdma_resolve_route()
	rdma_get_cm_event()
		test for RDMA_CM_EVENT_ADDR_RESOLVED
	rdma_ack_event()
 rdma_resolve_route()
	rmda_get_cm_event()
		test for RDMA_CM_EVENT_ROUTE_RESOLVED
	rdma_ack_event()
 ibv_alloc_pd()		<-- seg faults.

The cma_id is located on the stack, and properly defined down to this
point, but that is not an issue correct?  

Looking at things in gdb, I see that cma_id is initialized with what
appear to be a series of callbacks for various operations, as well as
some other data.  

Any ideas as to what I may be doing wrong?

Thanks in advance.

Best,
-PWM







More information about the general mailing list