summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/i40iw/i40iw.h
diff options
context:
space:
mode:
authorShiraz Saleem <shiraz.saleem@intel.com>2018-03-03 00:17:13 +0300
committerJason Gunthorpe <jgg@mellanox.com>2018-03-07 02:00:51 +0300
commit7de8b3576ab88bf8b3307eac2972d3b58dc28708 (patch)
tree987e0ec488bad2ef632166de3d63e630c999a209 /drivers/infiniband/hw/i40iw/i40iw.h
parent6b0c549fc616a2024178fce276df80fd138f3c31 (diff)
downloadlinux-7de8b3576ab88bf8b3307eac2972d3b58dc28708.tar.xz
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 'drivers/infiniband/hw/i40iw/i40iw.h')
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw.h b/drivers/infiniband/hw/i40iw/i40iw.h
index bcddd7061fc0..a20650f060ce 100644
--- a/drivers/infiniband/hw/i40iw/i40iw.h
+++ b/drivers/infiniband/hw/i40iw/i40iw.h
@@ -564,7 +564,8 @@ struct i40iw_cm_node *i40iw_find_node(struct i40iw_cm_core *cm_core,
u32 *rem_addr,
u16 loc_port,
u32 *loc_addr,
- bool add_refcnt);
+ bool add_refcnt,
+ bool accelerated_list);
enum i40iw_status_code i40iw_hw_flush_wqes(struct i40iw_device *iwdev,
struct i40iw_sc_qp *qp,