On Mon, Sep 10, 2018 at 09:49:27AM -0700, Dennis Dalessandro wrote: > From: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx> > > The post_send() path determines if it should post directly or, > schedule the post for later. The current logic is: > > if the swqe ring is empty or (for hfi1) wqe->length <= piothreshold > post the send > else > schedule > > This can allow large requests to call the send engine directly. > Large requests can potentially produce a large number of packets > prior to returning to the caller, blocking the caller from posting > more requests, and allowing better parallel processing. > > Allow the driver(s) more say in this logic (pass call_send to the > driver, rather than examining a return value). > > Update hfi1/qib logic to schedule the send engine if an RC or UC > message is larger than the QP MTU size. > > Reviewed-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx> > Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx> > Signed-off-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx> > Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx> > --- > drivers/infiniband/hw/hfi1/qp.c | 12 +++++------- > drivers/infiniband/hw/hfi1/verbs.h | 3 ++- > drivers/infiniband/hw/qib/qib_qp.c | 17 +++++++---------- > drivers/infiniband/hw/qib/qib_verbs.h | 3 ++- > drivers/infiniband/sw/rdmavt/qp.c | 14 ++++++++------ > include/rdma/rdma_vt.h | 10 ++++++++-- > 6 files changed, 32 insertions(+), 27 deletions(-) Applied to for-next, thanks Jason