mca_spml_ucx 46 oshmem/mca/spml/ucx/spml_ucx.c mca_spml_ucx_t mca_spml_ucx = { mca_spml_ucx 73 oshmem/mca/spml/ucx/spml_ucx.c .self = (void*)&mca_spml_ucx mca_spml_ucx 96 oshmem/mca/spml/ucx/spml_ucx.c mca_spml_ucx.enabled = true; mca_spml_ucx 127 oshmem/mca/spml/ucx/spml_ucx.c mca_spml_ucx.num_disconnect, mca_spml_ucx 131 oshmem/mca/spml/ucx/spml_ucx.c free(mca_spml_ucx.remote_addrs_tbl); mca_spml_ucx 249 oshmem/mca/spml/ucx/spml_ucx.c mca_spml_ucx.remote_addrs_tbl = (char **)calloc(nprocs, sizeof(char *)); mca_spml_ucx 250 oshmem/mca/spml/ucx/spml_ucx.c memset(mca_spml_ucx.remote_addrs_tbl, 0, nprocs * sizeof(char *)); mca_spml_ucx 275 oshmem/mca/spml/ucx/spml_ucx.c mca_spml_ucx.remote_addrs_tbl[i] = (char *)malloc(wk_rsizes[i]); mca_spml_ucx 276 oshmem/mca/spml/ucx/spml_ucx.c memcpy(mca_spml_ucx.remote_addrs_tbl[i], (char *)(wk_raddrs + wk_roffs[i]), mca_spml_ucx 293 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.remote_addrs_tbl[i]) { mca_spml_ucx 294 oshmem/mca/spml/ucx/spml_ucx.c free(mca_spml_ucx.remote_addrs_tbl[i]); mca_spml_ucx 299 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.remote_addrs_tbl) mca_spml_ucx 300 oshmem/mca/spml/ucx/spml_ucx.c free(mca_spml_ucx.remote_addrs_tbl); mca_spml_ucx 373 oshmem/mca/spml/ucx/spml_ucx.c if (!(mca_spml_ucx.heap_reg_nb && memheap_is_va_in_segment(addr, HEAP_SEG_INDEX))) { mca_spml_ucx 388 oshmem/mca/spml/ucx/spml_ucx.c status = ucp_mem_advise(mca_spml_ucx.ucp_context, ucx_mkey->mem_h, ¶ms); mca_spml_ucx 425 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.heap_reg_nb && memheap_is_va_in_segment(addr, HEAP_SEG_INDEX)) { mca_spml_ucx 436 oshmem/mca/spml/ucx/spml_ucx.c status = ucp_mem_map(mca_spml_ucx.ucp_context, &mem_map_params, &ucx_mkey->mem_h); mca_spml_ucx 446 oshmem/mca/spml/ucx/spml_ucx.c status = ucp_rkey_pack(mca_spml_ucx.ucp_context, ucx_mkey->mem_h, mca_spml_ucx 473 oshmem/mca/spml/ucx/spml_ucx.c ucp_mem_unmap(mca_spml_ucx.ucp_context, ucx_mkey->mem_h); mca_spml_ucx 500 oshmem/mca/spml/ucx/spml_ucx.c ucp_mem_unmap(mca_spml_ucx.ucp_context, ucx_mkey->mem_h); mca_spml_ucx 572 oshmem/mca/spml/ucx/spml_ucx.c err = ucp_worker_create(mca_spml_ucx.ucp_context, ¶ms, mca_spml_ucx 586 oshmem/mca/spml/ucx/spml_ucx.c ep_params.address = (ucp_address_t *)(mca_spml_ucx.remote_addrs_tbl[i]); mca_spml_ucx 641 oshmem/mca/spml/ucx/spml_ucx.c pthread_mutex_lock(&mca_spml_ucx.ctx_create_mutex); mca_spml_ucx 643 oshmem/mca/spml/ucx/spml_ucx.c pthread_mutex_unlock(&mca_spml_ucx.ctx_create_mutex); mca_spml_ucx 648 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.active_array.ctxs_count == 0) { mca_spml_ucx 652 oshmem/mca/spml/ucx/spml_ucx.c SHMEM_MUTEX_LOCK(mca_spml_ucx.internal_mutex); mca_spml_ucx 653 oshmem/mca/spml/ucx/spml_ucx.c _ctx_add(&mca_spml_ucx.active_array, ucx_ctx); mca_spml_ucx 654 oshmem/mca/spml/ucx/spml_ucx.c SHMEM_MUTEX_UNLOCK(mca_spml_ucx.internal_mutex); mca_spml_ucx 664 oshmem/mca/spml/ucx/spml_ucx.c SHMEM_MUTEX_LOCK(mca_spml_ucx.internal_mutex); mca_spml_ucx 665 oshmem/mca/spml/ucx/spml_ucx.c _ctx_remove(&mca_spml_ucx.active_array, (mca_spml_ucx_ctx_t *)ctx); mca_spml_ucx 666 oshmem/mca/spml/ucx/spml_ucx.c _ctx_add(&mca_spml_ucx.idle_array, (mca_spml_ucx_ctx_t *)ctx); mca_spml_ucx 667 oshmem/mca/spml/ucx/spml_ucx.c SHMEM_MUTEX_UNLOCK(mca_spml_ucx.internal_mutex); mca_spml_ucx 669 oshmem/mca/spml/ucx/spml_ucx.c if (!mca_spml_ucx.active_array.ctxs_count) { mca_spml_ucx 685 oshmem/mca/spml/ucx/spml_ucx.c ucx_mkey = mca_spml_ucx_get_mkey(ctx, src, src_addr, &rva, &mca_spml_ucx); mca_spml_ucx 704 oshmem/mca/spml/ucx/spml_ucx.c ucx_mkey = mca_spml_ucx_get_mkey(ctx, src, src_addr, &rva, &mca_spml_ucx); mca_spml_ucx 722 oshmem/mca/spml/ucx/spml_ucx.c ucx_mkey = mca_spml_ucx_get_mkey(ctx, dst, dst_addr, &rva, &mca_spml_ucx); mca_spml_ucx 741 oshmem/mca/spml/ucx/spml_ucx.c ucx_mkey = mca_spml_ucx_get_mkey(ctx, dst, dst_addr, &rva, &mca_spml_ucx); mca_spml_ucx 782 oshmem/mca/spml/ucx/spml_ucx.c while (mca_spml_ucx.aux_refcnt) { mca_spml_ucx 828 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.async_progress && (--mca_spml_ucx.aux_refcnt == 0)) { mca_spml_ucx 829 oshmem/mca/spml/ucx/spml_ucx.c opal_event_evtimer_del(mca_spml_ucx.tick_event); mca_spml_ucx 851 oshmem/mca/spml/ucx/spml_ucx.c pthread_mutex_lock(&mca_spml_ucx.ctx_create_mutex); mca_spml_ucx 855 oshmem/mca/spml/ucx/spml_ucx.c rc = mca_spml_ucx_ctx_create_common(SHMEM_CTX_PRIVATE, &mca_spml_ucx.aux_ctx); mca_spml_ucx 859 oshmem/mca/spml/ucx/spml_ucx.c pthread_mutex_unlock(&mca_spml_ucx.ctx_create_mutex); mca_spml_ucx 875 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.async_progress) { mca_spml_ucx 876 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.aux_ctx == NULL) { mca_spml_ucx 884 oshmem/mca/spml/ucx/spml_ucx.c if (mca_spml_ucx.aux_refcnt++ == 0) { mca_spml_ucx 886 oshmem/mca/spml/ucx/spml_ucx.c tv.tv_usec = mca_spml_ucx.async_tick; mca_spml_ucx 887 oshmem/mca/spml/ucx/spml_ucx.c opal_event_evtimer_add(mca_spml_ucx.tick_event, &tv); mca_spml_ucx 890 oshmem/mca/spml/ucx/spml_ucx.c ctx = (shmem_ctx_t)mca_spml_ucx.aux_ctx; mca_spml_ucx 108 oshmem/mca/spml/ucx/spml_ucx.h typedef struct mca_spml_ucx mca_spml_ucx_t; mca_spml_ucx 110 oshmem/mca/spml/ucx/spml_ucx.h extern mca_spml_ucx_t mca_spml_ucx; mca_spml_ucx 175 oshmem/mca/spml/ucx/spml_ucx.h if (mca_spml_ucx.async_progress) { mca_spml_ucx 176 oshmem/mca/spml/ucx/spml_ucx.h pthread_spin_lock(&mca_spml_ucx.async_lock); mca_spml_ucx 182 oshmem/mca/spml/ucx/spml_ucx.h if (mca_spml_ucx.async_progress) { mca_spml_ucx 183 oshmem/mca/spml/ucx/spml_ucx.h pthread_spin_unlock(&mca_spml_ucx.async_lock); mca_spml_ucx 113 oshmem/mca/spml/ucx/spml_ucx_component.c &mca_spml_ucx.priority); mca_spml_ucx 117 oshmem/mca/spml/ucx/spml_ucx_component.c &mca_spml_ucx.num_disconnect); mca_spml_ucx 121 oshmem/mca/spml/ucx/spml_ucx_component.c &mca_spml_ucx.heap_reg_nb); mca_spml_ucx 125 oshmem/mca/spml/ucx/spml_ucx_component.c &mca_spml_ucx.async_progress); mca_spml_ucx 129 oshmem/mca/spml/ucx/spml_ucx_component.c &mca_spml_ucx.async_tick); mca_spml_ucx 139 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.active_array.ctxs_count; i++) { mca_spml_ucx 140 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_progress(mca_spml_ucx.active_array.ctxs[i]->ucp_worker); mca_spml_ucx 155 oshmem/mca/spml/ucx/spml_ucx_component.c if (OPAL_UNLIKELY(!mca_spml_ucx.aux_ctx)) { mca_spml_ucx 159 oshmem/mca/spml/ucx/spml_ucx_component.c if (pthread_spin_trylock(&mca_spml_ucx.async_lock)) { mca_spml_ucx 163 oshmem/mca/spml/ucx/spml_ucx_component.c count = ucp_worker_progress(mca_spml_ucx.aux_ctx->ucp_worker); mca_spml_ucx 164 oshmem/mca/spml/ucx/spml_ucx_component.c pthread_spin_unlock(&mca_spml_ucx.async_lock); mca_spml_ucx 173 oshmem/mca/spml/ucx/spml_ucx_component.c if (pthread_spin_trylock(&mca_spml_ucx.async_lock)) { mca_spml_ucx 178 oshmem/mca/spml/ucx/spml_ucx_component.c count = ucp_worker_progress(mca_spml_ucx.aux_ctx->ucp_worker); mca_spml_ucx 181 oshmem/mca/spml/ucx/spml_ucx_component.c pthread_spin_unlock(&mca_spml_ucx.async_lock); mca_spml_ucx 220 oshmem/mca/spml/ucx/spml_ucx_component.c err = ucp_init(¶ms, ucp_config, &mca_spml_ucx.ucp_context); mca_spml_ucx 227 oshmem/mca/spml/ucx/spml_ucx_component.c err = ucp_context_query(mca_spml_ucx.ucp_context, &attr); mca_spml_ucx 237 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.active_array.ctxs_count = mca_spml_ucx.idle_array.ctxs_count = 0; mca_spml_ucx 238 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.active_array.ctxs_num = mca_spml_ucx.idle_array.ctxs_num = MCA_SPML_UCX_CTXS_ARRAY_SIZE; mca_spml_ucx 239 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.active_array.ctxs = calloc(mca_spml_ucx.active_array.ctxs_num, mca_spml_ucx 241 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.idle_array.ctxs = calloc(mca_spml_ucx.idle_array.ctxs_num, mca_spml_ucx 244 oshmem/mca/spml/ucx/spml_ucx_component.c SHMEM_MUTEX_INIT(mca_spml_ucx.internal_mutex); mca_spml_ucx 245 oshmem/mca/spml/ucx/spml_ucx_component.c pthread_mutex_init(&mca_spml_ucx.ctx_create_mutex, NULL); mca_spml_ucx 254 oshmem/mca/spml/ucx/spml_ucx_component.c err = ucp_worker_create(mca_spml_ucx.ucp_context, &wkr_params, mca_spml_ucx 268 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.async_progress) { mca_spml_ucx 269 oshmem/mca/spml/ucx/spml_ucx_component.c pthread_spin_init(&mca_spml_ucx.async_lock, 0); mca_spml_ucx 270 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.async_event_base = opal_progress_thread_init(NULL); mca_spml_ucx 271 oshmem/mca/spml/ucx/spml_ucx_component.c if (NULL == mca_spml_ucx.async_event_base) { mca_spml_ucx 276 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.tick_event = opal_event_alloc(); mca_spml_ucx 277 oshmem/mca/spml/ucx/spml_ucx_component.c opal_event_set(mca_spml_ucx.async_event_base, mca_spml_ucx.tick_event, mca_spml_ucx 281 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.aux_ctx = NULL; mca_spml_ucx 282 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.aux_refcnt = 0; mca_spml_ucx 294 oshmem/mca/spml/ucx/spml_ucx_component.c SPML_UCX_VERBOSE( 10, "in ucx, my priority is %d\n", mca_spml_ucx.priority); mca_spml_ucx 296 oshmem/mca/spml/ucx/spml_ucx_component.c if ((*priority) > mca_spml_ucx.priority) { mca_spml_ucx 297 oshmem/mca/spml/ucx/spml_ucx_component.c *priority = mca_spml_ucx.priority; mca_spml_ucx 300 oshmem/mca/spml/ucx/spml_ucx_component.c *priority = mca_spml_ucx.priority; mca_spml_ucx 306 oshmem/mca/spml/ucx/spml_ucx_component.c return &mca_spml_ucx.super; mca_spml_ucx 329 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.num_disconnect, mca_spml_ucx 341 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.active_array.ctxs_count) { mca_spml_ucx 345 oshmem/mca/spml/ucx/spml_ucx_component.c if(!mca_spml_ucx.enabled) mca_spml_ucx 348 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.async_progress) { mca_spml_ucx 350 oshmem/mca/spml/ucx/spml_ucx_component.c opal_event_evtimer_del(mca_spml_ucx.tick_event); mca_spml_ucx 351 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.aux_ctx != NULL) { mca_spml_ucx 352 oshmem/mca/spml/ucx/spml_ucx_component.c _ctx_cleanup(mca_spml_ucx.aux_ctx); mca_spml_ucx 355 oshmem/mca/spml/ucx/spml_ucx_component.c pthread_spin_destroy(&mca_spml_ucx.async_lock); mca_spml_ucx 359 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.active_array.ctxs_count; i++) { mca_spml_ucx 360 oshmem/mca/spml/ucx/spml_ucx_component.c _ctx_cleanup(mca_spml_ucx.active_array.ctxs[i]); mca_spml_ucx 363 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.idle_array.ctxs_count; i++) { mca_spml_ucx 364 oshmem/mca/spml/ucx/spml_ucx_component.c _ctx_cleanup(mca_spml_ucx.idle_array.ctxs[i]); mca_spml_ucx 374 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.active_array.ctxs_count; i++) { mca_spml_ucx 375 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_progress(mca_spml_ucx.active_array.ctxs[i]->ucp_worker); mca_spml_ucx 378 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.idle_array.ctxs_count; i++) { mca_spml_ucx 379 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_progress(mca_spml_ucx.idle_array.ctxs[i]->ucp_worker); mca_spml_ucx 384 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.aux_ctx != NULL) { mca_spml_ucx 385 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_progress(mca_spml_ucx.aux_ctx->ucp_worker); mca_spml_ucx 390 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.active_array.ctxs_count; i++) { mca_spml_ucx 391 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_destroy(mca_spml_ucx.active_array.ctxs[i]->ucp_worker); mca_spml_ucx 392 oshmem/mca/spml/ucx/spml_ucx_component.c free(mca_spml_ucx.active_array.ctxs[i]); mca_spml_ucx 395 oshmem/mca/spml/ucx/spml_ucx_component.c for (i = 0; i < mca_spml_ucx.idle_array.ctxs_count; i++) { mca_spml_ucx 396 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_destroy(mca_spml_ucx.idle_array.ctxs[i]->ucp_worker); mca_spml_ucx 397 oshmem/mca/spml/ucx/spml_ucx_component.c free(mca_spml_ucx.idle_array.ctxs[i]); mca_spml_ucx 404 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.aux_ctx != NULL) { mca_spml_ucx 405 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_worker_destroy(mca_spml_ucx.aux_ctx->ucp_worker); mca_spml_ucx 408 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.enabled = false; /* not anymore */ mca_spml_ucx 410 oshmem/mca/spml/ucx/spml_ucx_component.c free(mca_spml_ucx.active_array.ctxs); mca_spml_ucx 411 oshmem/mca/spml/ucx/spml_ucx_component.c free(mca_spml_ucx.idle_array.ctxs); mca_spml_ucx 412 oshmem/mca/spml/ucx/spml_ucx_component.c free(mca_spml_ucx.aux_ctx); mca_spml_ucx 414 oshmem/mca/spml/ucx/spml_ucx_component.c SHMEM_MUTEX_DESTROY(mca_spml_ucx.internal_mutex); mca_spml_ucx 415 oshmem/mca/spml/ucx/spml_ucx_component.c pthread_mutex_destroy(&mca_spml_ucx.ctx_create_mutex); mca_spml_ucx 417 oshmem/mca/spml/ucx/spml_ucx_component.c if (mca_spml_ucx.ucp_context) { mca_spml_ucx 418 oshmem/mca/spml/ucx/spml_ucx_component.c ucp_cleanup(mca_spml_ucx.ucp_context); mca_spml_ucx 419 oshmem/mca/spml/ucx/spml_ucx_component.c mca_spml_ucx.ucp_context = NULL;