@@ -1572,17 +1572,12 @@ static unsigned uct_dc_mlx5_ep_fc_hard_req_progress(void *arg)
1572
1572
* resend FC_HARD_REQ packet to make sure a peer will resend FC_PURE_GRANT
1573
1573
* packet in case of failure on the remote FC endpoint */
1574
1574
kh_foreach_key (& iface -> tx .fc_hash , ep_key , {
1575
- ep = (uct_dc_mlx5_ep_t * )ep_key ;
1576
-
1577
- /* Allocate DCI for the endpoint to schedule the endpoint to DCI wait
1578
- * queue if there is free DCI */
1579
- status = uct_dc_mlx5_iface_dci_get (iface , ep );
1580
- ucs_assertv ((status == UCS_OK ) || (status == UCS_ERR_NO_RESOURCE ),
1581
- "%s" , ucs_status_string (status ));
1582
-
1583
- /* Force DCI scheduling, since FC resources may never become available
1584
- * unless we send FC_HARD_REQ packet */
1585
- uct_dc_mlx5_ep_schedule (iface , ep , 1 );
1575
+ ep = (uct_dc_mlx5_ep_t * )ep_key ;
1576
+ status = uct_dc_mlx5_ep_check_fc (iface , ep );
1577
+ if ((status == UCS_OK ) || (status == UCS_ERR_NO_RESOURCE )) {
1578
+ ucs_warn ("ep %p: flow-control check failed: %s" , ep ,
1579
+ ucs_status_string (status ));
1580
+ }
1586
1581
})
1587
1582
1588
1583
return 1 ;
@@ -1702,7 +1697,7 @@ void uct_dc_mlx5_ep_handle_failure(uct_dc_mlx5_ep_t *ep,
1702
1697
/* Since DCI isn't assigned for the FC endpoint, schedule DCI
1703
1698
* allocation for progressing possible FC_PURE_GRANT re-sending
1704
1699
* operation which are scheduled on the pending queue */
1705
- uct_dc_mlx5_iface_schedule_dci_alloc (iface , ep , 0 );
1700
+ uct_dc_mlx5_iface_schedule_dci_alloc (iface , ep );
1706
1701
}
1707
1702
}
1708
1703
0 commit comments