IB/hfi1: Add running average for adaptive pio
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Tue, 26 Feb 2019 16:46:16 +0000 (08:46 -0800)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 26 Mar 2019 12:33:21 +0000 (09:33 -0300)
commit270a9833b2697d455f6ae12669b8220d3ea48f18
tree04e1dc0662bd7f1835797ff4633a066247a3a3c8
parent19b1a294b0b3f4e8080584cd560fc058f12123fb
IB/hfi1: Add running average for adaptive pio

The adaptive PIO implementation only considers the current packet size
when deciding between SDMA and pio for a packet.

This causes credit return forces if small and large packets are
interleaved.

Add a running average to avoid costly credit forces so that a large
sequence of small packets is required to go below the threshold that
chooses pio.

Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hfi1/qp.c
drivers/infiniband/hw/hfi1/verbs.c
drivers/infiniband/hw/hfi1/verbs.h