static void uct_ud_mlx5_iface_progress(void *arg) { uct_ud_mlx5_iface_t *iface = arg; ucs_status_t status; uct_ud_enter(&iface->super); status = uct_ud_mlx5_iface_poll_rx(iface); if (status == UCS_ERR_NO_PROGRESS) { uct_ud_mlx5_iface_poll_tx(iface); } uct_ud_iface_progress_pending(&iface->super, 0); uct_ud_leave(&iface->super); }
static void uct_ud_mlx5_iface_async_progress(void *arg) { uct_ud_mlx5_iface_t *iface = arg; ucs_status_t status; do { status = uct_ud_mlx5_iface_poll_rx(iface); } while (status == UCS_OK); uct_ud_mlx5_iface_poll_tx(iface); uct_ud_iface_progress_pending(&iface->super, 1); }
static void uct_ud_mlx5_iface_progress(void *arg) { uct_ud_mlx5_iface_t *iface = arg; ucs_status_t status; status = uct_ud_mlx5_iface_poll_rx(iface); if (status == UCS_ERR_NO_PROGRESS) { uct_ud_mlx5_iface_poll_tx(iface); } if (uct_ud_iface_has_pending(&iface->super)) { uct_ud_iface_progress_pending(&iface->super, uct_ud_mlx5_ep_tx_ctl_skb); } }