> > Hello Moni, > > The ib_srpt driver uses zero-length writes to trigger the completion handler > if either an RTU event is received or an RDMA channel is being closed. In > the log I saw the message "queued zerolength write" appear but not > "srpt_zerolength_write_done: wc->status = ..." when the hang was observed. > That made me wonder whether the rxe driver perhaps suppresses completions > for zero-length writes if the queue pair state is changed into IB_QPS_ERR? I > think it is required by the IB spec to queue an error completion for pending > work requests upon the transition to IB_QPS_ERR. > Hi Bart This is a great input for the debugger (whoever that be). From a brief look at the code I see that error QP is checked when during the validation of RDMA_WRITE request. In this case a completion is generated and the size of the buffer to write remains irrelevant. However, to verify that I wasn't wrong you can add some printk() in the path that starts with rxe_responder(). When flow reaches check_resource() and when QP is in ERROR state the function returns RESPST_COMPLETE. The next step in the state machine would be to call the do_complete() function. thanks Moni -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html