Commit 90b2620e authored by Michael J. Ruhl's avatar Michael J. Ruhl Committed by Doug Ledford
Browse files

IB/hfi1: Fix a latency issue for small messages

A recent performance enhancement introduced a latency issue in the
HFI message path.  The new algorithm removed a forced call send for
PIO messages and added a forced schedule event for messages larger
than the MTU.

For PIO, the schedule path can introduce thrashing that can
significantly impact the throughput for small messages.

If a message size is within the PIO threshold, always take the send

Fixes: 0b79b277

 ("IB/{hfi1, qib, rdmavt}: Schedule multi RC/UC packets instead of posting")
Reviewed-by: default avatarMike Marciniszyn <>
Signed-off-by: default avatarMichael J. Ruhl <>
Signed-off-by: default avatarDennis Dalessandro <>
Signed-off-by: default avatarDoug Ledford <>
parent 7bca603a
...@@ -340,6 +340,13 @@ int hfi1_setup_wqe(struct rvt_qp *qp, struct rvt_swqe *wqe, bool *call_send) ...@@ -340,6 +340,13 @@ int hfi1_setup_wqe(struct rvt_qp *qp, struct rvt_swqe *wqe, bool *call_send)
default: default:
break; break;
} }
* System latency between send and schedule is large enough that
* forcing call_send to true for piothreshold packets is necessary.
if (wqe->length <= piothreshold)
*call_send = true;
return 0; return 0;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment