aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/i40iw/i40iw_utils.c
diff options
context:
space:
mode:
authorShiraz Saleem <shiraz.saleem@intel.com>2018-03-02 15:17:13 -0600
committerJason Gunthorpe <jgg@mellanox.com>2018-03-06 16:00:51 -0700
commit7de8b3576ab88bf8b3307eac2972d3b58dc28708 (patch)
tree987e0ec488bad2ef632166de3d63e630c999a209 /drivers/infiniband/hw/i40iw/i40iw_utils.c
parenti40iw: Refactor handling of txpend list (diff)
downloadlinux-dev-7de8b3576ab88bf8b3307eac2972d3b58dc28708.tar.xz
linux-dev-7de8b3576ab88bf8b3307eac2972d3b58dc28708.zip
i40iw: Improve CM node lookup time on connection setup
Currently all CM nodes involved in a connection are maintained in a connected_node list per dev. During connection setup, we need to search this every time we receive a packet on the iWARP LAN Queue (ILQ) and this can be pretty inefficient for large number of connections. Fix this by organizing the CM nodes in two lists - accelerated list and non-accelerated list. The search on ILQ receive would be limited to only non accelerated nodes. When a node moves to RTS, it is added to the accelerated list. Benchmarking ucmatose 16k connections shows a 20% improvement in test completion time. Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to '')
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw_utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_utils.c b/drivers/infiniband/hw/i40iw/i40iw_utils.c
index ddc1056b0b4e..8cad4e8772bc 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_utils.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_utils.c
@@ -1407,7 +1407,7 @@ struct i40iw_sc_qp *i40iw_ieq_get_qp(struct i40iw_sc_dev *dev,
rem_port = ntohs(tcph->source);
cm_node = i40iw_find_node(&iwdev->cm_core, rem_port, rem_addr, loc_port,
- loc_addr, false);
+ loc_addr, false, true);
if (!cm_node)
return NULL;
iwqp = cm_node->iwqp;