-
Notifications
You must be signed in to change notification settings - Fork 423
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
UCT/DC/MLX5: Fix deadlock between DCI resources and RDMA_READ credits
If we check for RDMA_READ credits before DCI credits, we may put the pending request on DCI-wait arbiter (because ep->dci==-1) while it's actually waiting for RDMA_READ resources on the iface. As a result, when RDMA_READ credits do arrive, but for a **different** pool, we will not dispatch this pending operation and it will be stuck forever. The fix is to always check for DCI resources before TX resources (iface or QP) because pending requests always start from DCI-wait arbiter and then move to TX-wait arbiter. TX resources will always arrive because it's driven by HW progress. (Also, we can not add an ep without allocated DCI directly to TX-wait arbiter).
- Loading branch information
Showing
1 changed file
with
25 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters