kernel_samsung_a53x/drivers/infiniband/hw
Junxian Huang c0f95fbea9 RDMA/hns: Optimize hem allocation performance
[ Upstream commit fe51f6254d81f5a69c31df16353d6539b2b51630 ]

When allocating MTT hem, for each hop level of each hem that is being
allocated, the driver iterates the hem list to find out whether the
bt page has been allocated in this hop level. If not, allocate a new
one and splice it to the list. The time complexity is O(n^2) in worst
cases.

Currently the allocation for-loop uses 'unit' as the step size. This
actually has taken into account the reuse of last-hop-level MTT bt
pages by multiple buffer pages. Thus pages of last hop level will
never have been allocated, so there is no need to iterate the hem list
in last hop level.

Removing this unnecessary iteration can reduce the time complexity to
O(n).

Fixes: 38389eaa4db1 ("RDMA/hns: Add mtr support for mixed multihop addressing")
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20240906093444.3571619-9-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:26 +01:00
..
bnxt_re bnxt_re: Fix imm_data endianness 2024-11-23 23:20:11 +01:00
cxgb4 RDMA/cxgb4: Check skb value for failure to allocate 2024-11-08 11:24:52 +01:00
efa Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi1 IB/hfi1: Fix potential deadlock on &irq_src_lock and &dd->uctxt_lock 2024-11-23 23:20:45 +01:00
hns RDMA/hns: Optimize hem allocation performance 2024-11-23 23:21:26 +01:00
i40iw RDMA/irdma: Prevent zero-length STAG registration 2024-11-18 12:10:54 +01:00
mlx4 RDMA/mlx4: Fix truncated output warning in alias_GUID.c 2024-11-23 23:20:10 +01:00
mlx5 RDMA/mlx5: Add check for srq max_sge attribute 2024-11-19 14:19:09 +01:00
mthca RDMA/usnic: Silence uninitialized symbol smatch warnings 2024-11-18 12:12:38 +01:00
ocrdma Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
qedr RDMA/qedr: Fix qedr_create_user_qp error flow 2024-11-18 22:25:39 +01:00
qib Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
usnic Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vmw_pvrdma Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00