Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
Archivo: ud_mlx5.c Proyecto: hjelmn/ucx
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);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
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);
}