From 1a6747faa5904e23a7b8c247a52b603aa24098a7 Mon Sep 17 00:00:00 2001 From: Arlin Davis Date: Fri, 22 Aug 2014 10:27:46 -0700 Subject: [PATCH] mpxyd: tx thread may not be signaled on small segment writes Signed-off-by: Arlin Davis --- dapl/svc/mpxy_out.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dapl/svc/mpxy_out.c b/dapl/svc/mpxy_out.c index 6bdd084..bcd0f5f 100644 --- a/dapl/svc/mpxy_out.c +++ b/dapl/svc/mpxy_out.c @@ -773,6 +773,10 @@ retry_mr: MCNTR(smd->md, MCM_SCIF_SIGNAL); MCNTR(smd->md, MCM_MX_WRITE_SEG); + mpxy_unlock(&m_qp->txlock); + write(smd->md->mc->tx_pipe[1], "w", sizeof("w")); + mpxy_lock(&m_qp->txlock); + if (!len) /* done */ break; @@ -809,10 +813,6 @@ retry_mr: m_qp->post_sig_cnt, m_qp->comp_cnt, m_qp->wr_pp); } - mpxy_unlock(&m_qp->txlock); - write(smd->md->mc->tx_pipe[1], "w", sizeof("w")); - mpxy_lock(&m_qp->txlock); - if (m_wr->flags & M_SEND_LS) goto bail; @@ -844,8 +844,8 @@ bail: mix_dto_event(m_qp->ib_qp2->send_cq->cq_context, &wc, 1); } - mlog(4, " exit: q_id %d, q_ctx %p, len %d, wr_hd = %d\n", - pmsg->qp_id, (void*)pmsg->qp_ctx, pmsg->len, m_qp->wr_hd); + mlog(4, " exit: q_id %d, q_ctx %p, len %d, wr_hd %d pp %d\n", + pmsg->qp_id, (void*)pmsg->qp_ctx, pmsg->len, m_qp->wr_hd, m_qp->wr_pp); return ret; } -- 2.41.0