linux/drivers/infiniband/hw
Steve Wise 49b53a93a6 iw_cxgb4: add fast-path for small REG_MR operations
When processing a REG_MR work request, if fw supports the
FW_RI_NSMR_TPTE_WR work request, and if the page list for this
registration is <= 2 pages, and the current state of the mr is INVALID,
then use FW_RI_NSMR_TPTE_WR to pass down a fully populated TPTE for FW
to write.  This avoids FW having to do an async read of the TPTE blocking
the SQ until the read completes.

To know if the current MR state is INVALID or not, iw_cxgb4 must track the
state of each fastreg MR.  The c4iw_mr struct state is updated as REG_MR
and LOCAL_INV WRs are posted and completed, when a reg_mr is destroyed,
and when RECV completions are processed that include a local invalidation.

This optimization increases small IO IOPS for both iSER and NVMF.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-10-07 16:54:40 -04:00
..
cxgb3 IB/cxgb3: Move user vendor structures 2016-10-07 16:54:35 -04:00
cxgb4 iw_cxgb4: add fast-path for small REG_MR operations 2016-10-07 16:54:40 -04:00
hfi1 IB/{core,hw}: Add constant for node_desc 2016-10-07 16:54:34 -04:00
hns IB/hns: Add support of ACPI to the Hisilicon RoCE driver 2016-08-25 10:05:10 -04:00
i40iw i40iw_cm: Remove deprecated create_singlethread_workqueue 2016-10-07 16:54:28 -04:00
mlx4 IB/mlx4: Fix possible vl/sl field mismatch in LRH header in QP1 packets 2016-10-07 16:54:38 -04:00
mlx5 IB/mlx5: Move and decouple user vendor structures 2016-10-07 16:54:34 -04:00
mthca IB/mthca: Move user vendor structures 2016-10-07 16:54:37 -04:00
nes IB/nes: Move user vendor structures 2016-10-07 16:54:37 -04:00
ocrdma IB/ocrdma: Move user vendor structures 2016-10-07 16:54:36 -04:00
qib IB/{core,hw}: Add constant for node_desc 2016-10-07 16:54:34 -04:00
usnic IB/usnic: Support device FW version string 2016-06-23 12:08:34 -04:00
Makefile IB/hns: Kconfig and Makefile for RoCE module 2016-08-22 14:02:33 -04:00