]> www.infradead.org Git - users/jedix/linux-maple.git/commit
RDMA/hns: Fix mbox timing out by adding retry mechanism
authorJunxian Huang <huangjunxian6@hisilicon.com>
Sat, 8 Feb 2025 10:59:30 +0000 (18:59 +0800)
committerLeon Romanovsky <leon@kernel.org>
Sun, 9 Feb 2025 09:57:15 +0000 (04:57 -0500)
commit9747c0c7791d4a5a62018a0c9c563dd2e6f6c1c0
tree6c8f030ac3f19c39d1e7fde25e0265b05ff87958
parentee9d1619ef6e4a3412a13788256cb8c3e5efbe3d
RDMA/hns: Fix mbox timing out by adding retry mechanism

If a QP is modified to error state and a flush CQE process is triggered,
the subsequent QP destruction mbox can still be successfully posted but
will be blocked in HW until the flush CQE process finishes. This causes
further mbox posting timeouts in driver. The blocking time is related
to QP depth. Considering an extreme case where SQ depth and RQ depth
are both 32K, the blocking time can reach about 135ms.

This patch adds a retry mechanism for mbox posting. For each try, FW
waits 15ms for HW to complete the previous mbox, otherwise return a
timeout error code to driver. Counting other time consumption in FW,
set 8 tries for mbox posting and a 5ms time gap before each retry to
increase to a sufficient timeout limit.

Fixes: 0425e3e6e0c7 ("RDMA/hns: Support flush cqe for hip08 in kernel space")
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20250208105930.522796-1-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
drivers/infiniband/hw/hns/hns_roce_hw_v2.h