i40iw: Improve CM node lookup time on connection setup
authorShiraz Saleem <shiraz.saleem@intel.com>
Fri, 2 Mar 2018 21:17:13 +0000 (15:17 -0600)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 6 Mar 2018 23:00:51 +0000 (16:00 -0700)
commit7de8b3576ab88bf8b3307eac2972d3b58dc28708
tree987e0ec488bad2ef632166de3d63e630c999a209
parent6b0c549fc616a2024178fce276df80fd138f3c31
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>
drivers/infiniband/hw/i40iw/i40iw.h
drivers/infiniband/hw/i40iw/i40iw_cm.c
drivers/infiniband/hw/i40iw/i40iw_cm.h
drivers/infiniband/hw/i40iw/i40iw_utils.c