ucs_status_t uct_mm_iface_flush(uct_iface_h tl_iface, unsigned flags, uct_completion_t *comp) { if (comp != NULL) { return UCS_ERR_UNSUPPORTED; } ucs_memory_cpu_store_fence(); UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_iface, uct_base_iface_t)); return UCS_OK; }
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_ugni_smsg_ep_flush(uct_ep_h tl_ep, unsigned flags, uct_completion_t *comp) { uct_ugni_smsg_ep_t *ep = ucs_derived_of(tl_ep, uct_ugni_smsg_ep_t); if (comp != NULL) { return UCS_ERR_UNSUPPORTED; } if (0 == ep->super.outstanding) { /* We progress the local CQ anyways because we may get back send credits */ progress_local_cq(ucs_derived_of(tl_ep->iface, uct_ugni_smsg_iface_t)); UCT_TL_IFACE_STAT_FLUSH(ucs_derived_of(tl_ep->iface, uct_base_iface_t)); return UCS_OK; } else { return uct_ugni_smsg_iface_flush(tl_ep->iface, 0, NULL); } }
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; }