static UCS_CLASS_CLEANUP_FUNC(uct_ud_mlx5_iface_t) { ucs_trace_func(""); uct_worker_progress_unregister(self->super.super.super.worker, uct_ud_mlx5_iface_progress, self); uct_ib_mlx5_put_txwq(self->super.super.super.worker, &self->tx.wq); }
static UCS_CLASS_CLEANUP_FUNC(uct_ud_mlx5_iface_t) { ucs_trace_func(""); uct_ud_enter(&self->super); uct_worker_progress_unregister(self->super.super.super.worker, uct_ud_mlx5_iface_progress, self); uct_ib_mlx5_put_txwq(self->super.super.super.worker, &self->tx.wq); UCT_UD_IFACE_DELETE_EPS(&self->super, uct_ud_mlx5_ep_t); uct_ud_enter(&self->super); }
static UCS_CLASS_CLEANUP_FUNC(uct_rc_mlx5_ep_t) { uct_rc_mlx5_iface_t *iface = ucs_derived_of(self->super.super.super.iface, uct_rc_mlx5_iface_t); uct_worker_progress_unregister(iface->super.super.super.worker, uct_rc_mlx5_iface_progress, iface); uct_ib_mlx5_put_txwq(iface->super.super.super.worker, &self->tx.wq); /* Synchronize CQ index with the driver, since it would remove pending * completions for this QP (both send and receive) during ibv_destroy_qp(). */ uct_ib_mlx5_update_cq_ci(iface->super.super.send_cq, iface->tx.cq.cq_ci); uct_ib_mlx5_update_cq_ci(iface->super.super.recv_cq, iface->rx.cq.cq_ci); uct_rc_ep_reset_qp(&self->super); iface->tx.cq.cq_ci = uct_ib_mlx5_get_cq_ci(iface->super.super.send_cq); iface->rx.cq.cq_ci = uct_ib_mlx5_get_cq_ci(iface->super.super.recv_cq); }
static UCS_CLASS_CLEANUP_FUNC(uct_rc_mlx5_ep_t) { uct_rc_mlx5_iface_t *iface = ucs_derived_of(self->super.super.super.iface, uct_rc_mlx5_iface_t); uct_ib_mlx5_put_txwq(iface->super.super.super.worker, &self->tx.wq); }