George -- any thoughts on this one?

On Feb 11, 2009, at 1:01 AM, Mike Dubman wrote:


Hello guys,

I'm running some experimental tcp btl which implements rdma GET method and advertises it in its flags of the btl API. The btl`s send() method returns rc=1 to select fast path for PML. (this optimization was added in revision 18551 in v1.3)

It seems that in PML/ob1, mca_pml_ob1_send_request_start_rdma() function does not treat right such combination (btl GET + fastpath rc>0) and going into deadlock, i.e.

+++ pml_ob1_sendreq.c +670
At this line, sendreq->req_state is 0

+++ pml_ob1_sendreq.c +800
At this line, if btl has GET method and btl`s send() returned fastpath hint - the call to mca_pml_ob1_rndv_completion_request() will decrement sendreq->req_state by one, leaving it to -1.

This value of -1 will keep send_request_pml_complete_check() from completing request on PML level.

The PML logic (in mca_pml_ob1_send_request_start_rdma) for PUT operation initializes req_state to "2" in pml_ob1_sendreq.c +791, but leaves req_state to 0 for GET operations.

Please suggest.

Thanks

Mike.







_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


--
Jeff Squyres
Cisco Systems

Reply via email to