diff options
author | Mike Marciniszyn | 2015-10-26 15:28:27 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2015-10-27 09:16:54 +0100 |
commit | 13a69f5299688074666e1f74b90ddc6beae43e6d (patch) | |
tree | c1ff099fe6ee9a7aba52be048c92a803672ce7b9 /drivers/staging/rdma/hfi1/ruc.c | |
parent | staging: hfi1: sdma: Use setup_timer (diff) | |
download | kernel-qcow2-linux-13a69f5299688074666e1f74b90ddc6beae43e6d.tar.gz kernel-qcow2-linux-13a69f5299688074666e1f74b90ddc6beae43e6d.tar.xz kernel-qcow2-linux-13a69f5299688074666e1f74b90ddc6beae43e6d.zip |
staging/rdma/hfi1: Fix regression in send performance
The clear_ahg call is new in hfi1 vs qib. For small messages the progress
routine always builds one and clears out the ahg state when the queue has gone
to empty which is the predominant case for small messages.
Inline the routine and avoid the call to sdma_ahg_free to mitigate the
performance impact. Finally, move the routine to qp.h for scope reasons.
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rdma/hfi1/ruc.c')
-rw-r--r-- | drivers/staging/rdma/hfi1/ruc.c | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/staging/rdma/hfi1/ruc.c b/drivers/staging/rdma/hfi1/ruc.c index a4115288db66..faad1b93703e 100644 --- a/drivers/staging/rdma/hfi1/ruc.c +++ b/drivers/staging/rdma/hfi1/ruc.c @@ -695,19 +695,6 @@ u32 hfi1_make_grh(struct hfi1_ibport *ibp, struct ib_grh *hdr, return sizeof(struct ib_grh) / sizeof(u32); } -/* - * free_ahg - clear ahg from QP - */ -void clear_ahg(struct hfi1_qp *qp) -{ - qp->s_hdr->ahgcount = 0; - qp->s_flags &= ~(HFI1_S_AHG_VALID | HFI1_S_AHG_CLEAR); - if (qp->s_sde) - sdma_ahg_free(qp->s_sde, qp->s_ahgidx); - qp->s_ahgidx = -1; - qp->s_sde = NULL; -} - #define BTH2_OFFSET (offsetof(struct hfi1_pio_header, hdr.u.oth.bth[2]) / 4) /** |