ucs_status_t uct_ugni_iface_flush(uct_iface_h tl_iface) { uct_ugni_iface_t *iface = ucs_derived_of(tl_iface, uct_ugni_iface_t); if (0 == iface->outstanding) { UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_OK; } uct_ugni_progress(iface); UCT_TL_IFACE_STAT_FLUSH_WAIT(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_INPROGRESS; }
ucs_status_t uct_cm_iface_flush(uct_iface_h tl_iface) { ucs_status_t status; status = uct_cm_iface_flush_do(tl_iface); if (status == UCS_OK) { UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_iface, uct_base_iface_t)); } else { UCT_TL_IFACE_STAT_FLUSH_WAIT(ucs_derived_of(tl_iface, uct_base_iface_t)); } return status; }
ucs_status_t uct_ugni_iface_flush(uct_iface_h tl_iface, unsigned flags, uct_completion_t *comp) { uct_ugni_iface_t *iface = ucs_derived_of(tl_iface, uct_ugni_iface_t); if (comp != NULL) { return UCS_ERR_UNSUPPORTED; } if (0 == iface->outstanding) { UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_OK; } uct_ugni_progress(iface); UCT_TL_IFACE_STAT_FLUSH_WAIT(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_INPROGRESS; }
static ucs_status_t uct_cuda_copy_iface_flush(uct_iface_h tl_iface, unsigned flags, uct_completion_t *comp) { uct_cuda_copy_iface_t *iface = ucs_derived_of(tl_iface, uct_cuda_copy_iface_t); if (comp != NULL) { return UCS_ERR_UNSUPPORTED; } if (ucs_queue_is_empty(&iface->outstanding_d2h_cuda_event_q) && ucs_queue_is_empty(&iface->outstanding_h2d_cuda_event_q)) { UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_OK; } UCT_TL_IFACE_STAT_FLUSH_WAIT(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_INPROGRESS; }
static ucs_status_t uct_ugni_smsg_iface_flush(uct_iface_h tl_iface, unsigned flags, uct_completion_t *comp) { uct_ugni_smsg_iface_t *iface = ucs_derived_of(tl_iface, uct_ugni_smsg_iface_t); ucs_status_t status; if (comp != NULL) { return UCS_ERR_UNSUPPORTED; } /* Always progress to local cq to get back send credits */ status = progress_local_cq(iface); if (UCS_OK == status) { UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_iface, uct_base_iface_t)); } else { UCT_TL_IFACE_STAT_FLUSH_WAIT(ucs_derived_of(tl_iface, uct_base_iface_t)); } return status; }