[PATCH rdma-next 0/2] Query IBoE speed directly

From: Leon Romanovsky
Date: Mon Apr 10 2023 - 09:12:21 EST


From: Leon Romanovsky <leonro@xxxxxxxxxx>

>From Mark,

This series adds a new driver API to query the IBoE link speed, as well
as the mlx5 implementation.

Currently the ethtool API is used, which must be protected with the rtnl
lock. This becomes a bottleneck when try to create many rdma-cm
connections at the same time, especially with multiple processes.

With this new API we can get rid of the rtnl lock and ethtool operation.
Test result shows clear improvement, An example below (the time needed
for a process to create all connections):

One process with One process with Eight processes, each
1,000 connections 10,000 connections with 1,000 connections
old: 10330ms 106107ms 47723ms
new: 7937ms 80108ms 19446ms
Improvement: 23.2% 24.5% 59.3%

Thanks

Mark Zhang (2):
IB/core: Query IBoE link speed with a new driver API
IB/mlx5: Implement query_iboe_speed driver API

drivers/infiniband/core/cma.c | 6 ++-
drivers/infiniband/core/device.c | 1 +
drivers/infiniband/hw/mlx5/main.c | 41 ++++++++++++++++++++
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 24 ------------
include/rdma/ib_addr.h | 31 +++++++++------
include/rdma/ib_verbs.h | 26 +++++++++++++
6 files changed, 92 insertions(+), 37 deletions(-)

--
2.39.2