diff --git a/src/ucp/core/ucp_context.c b/src/ucp/core/ucp_context.c index 73df22fb199..1464dad8a64 100644 --- a/src/ucp/core/ucp_context.c +++ b/src/ucp/core/ucp_context.c @@ -713,7 +713,7 @@ static ucp_tl_alias_t ucp_tl_aliases[] = { { "shm", { "posix", "sysv", "xpmem", "knem", "cma", NULL } }, { "ib", { "rc_verbs", "ud_verbs", "rc_mlx5", "ud_mlx5", "dc_mlx5", "gga_mlx5", UCP_TL_AUX("ud_mlx5"), UCP_TL_AUX("ud_verbs"), - "srd", NULL } }, + "srd", "rc_gda", NULL } }, { "ud_v", { "ud_verbs", NULL } }, { "ud_x", { "ud_mlx5", NULL } }, { "ud", { "ud_mlx5", "ud_verbs", NULL } }, diff --git a/src/ucp/core/ucp_context.h b/src/ucp/core/ucp_context.h index a8f95266a67..00b147471fa 100644 --- a/src/ucp/core/ucp_context.h +++ b/src/ucp/core/ucp_context.h @@ -286,7 +286,7 @@ typedef struct ucp_tl_resource_desc { */ typedef struct ucp_tl_alias { const char *alias; /* Alias name */ - const char* tls[10]; /* Transports which are selected by the alias */ + const char* tls[11]; /* Transports which are selected by the alias */ } ucp_tl_alias_t; diff --git a/src/uct/ib/mlx5/gdaki/gdaki.c b/src/uct/ib/mlx5/gdaki/gdaki.c index e5c346c3cc4..ccedf2bba33 100644 --- a/src/uct/ib/mlx5/gdaki/gdaki.c +++ b/src/uct/ib/mlx5/gdaki/gdaki.c @@ -1,5 +1,5 @@ /** - * Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2025. ALL RIGHTS RESERVED. + * Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2025-2026. ALL RIGHTS RESERVED. * * See file LICENSE for terms. */ @@ -10,6 +10,7 @@ #include "gdaki.h" +#include #include #include #include @@ -142,6 +143,7 @@ static int uct_gdaki_check_umem_dmabuf(const uct_ib_md_t *md) mlx5dv_devx_umem_dereg(umem); out_free: + ucs_close_fd(&dmabuf.fd); cuMemFree(buff); out_ctx_pop: UCT_CUDADRV_FUNC_LOG_WARN(cuCtxPopCurrent(NULL)); @@ -201,8 +203,12 @@ static struct mlx5dv_devx_umem * uct_rc_gdaki_umem_reg(const uct_ib_md_t *md, struct ibv_context *ibv_context, void *address, size_t length, uint64_t pgsz_bitmap) { + uct_cuda_copy_md_dmabuf_t dmabuf = { + .fd = UCT_DMABUF_FD_INVALID, + .offset = 0 + }; struct mlx5dv_devx_umem_in umem_in = {}; - uct_cuda_copy_md_dmabuf_t dmabuf UCS_V_UNUSED; + struct mlx5dv_devx_umem *umem; umem_in.addr = address; umem_in.size = length; @@ -216,7 +222,9 @@ uct_rc_gdaki_umem_reg(const uct_ib_md_t *md, struct ibv_context *ibv_context, } #endif - return mlx5dv_devx_umem_reg_ex(ibv_context, &umem_in); + umem = mlx5dv_devx_umem_reg_ex(ibv_context, &umem_in); + ucs_close_fd(&dmabuf.fd); + return umem; } static UCS_CLASS_INIT_FUNC(uct_rc_gdaki_ep_t, const uct_ep_params_t *params) @@ -712,6 +720,7 @@ static ucs_status_t uct_rc_gdaki_reg_mr(const uct_ib_md_t *md, void *address, { uct_md_mem_reg_params_t params; uct_cuda_copy_md_dmabuf_t dmabuf; + ucs_status_t status; params.field_mask = UCT_MD_MEM_REG_FIELD_FLAGS | UCT_MD_MEM_REG_FIELD_DMABUF_FD | @@ -721,8 +730,10 @@ static ucs_status_t uct_rc_gdaki_reg_mr(const uct_ib_md_t *md, void *address, params.dmabuf_fd = dmabuf.fd; params.dmabuf_offset = dmabuf.offset; - return uct_ib_reg_mr(md, address, length, ¶ms, UCT_IB_MEM_ACCESS_FLAGS, - NULL, mr_p); + status = uct_ib_reg_mr(md, address, length, ¶ms, + UCT_IB_MEM_ACCESS_FLAGS, NULL, mr_p); + ucs_close_fd(&dmabuf.fd); + return status; } static UCS_CLASS_INIT_FUNC(uct_rc_gdaki_iface_t, uct_md_h tl_md, diff --git a/test/gtest/ucp/test_ucp_wireup.cc b/test/gtest/ucp/test_ucp_wireup.cc index 989dadcff3f..4c3f19729a2 100644 --- a/test/gtest/ucp/test_ucp_wireup.cc +++ b/test/gtest/ucp/test_ucp_wireup.cc @@ -1787,11 +1787,11 @@ class test_ucp_address_v2 : public test_ucp_wireup { UCS_STATIC_BITMAP_FOR_EACH_BIT(rsc_index, &context->tl_bitmap) { auto wiface = ucp_worker_iface(worker, rsc_index); - /* Compare resources by device and transport */ - if ((context->tl_rscs[rsc_index].tl_name_csum == + /* Compare resources by md_index, transport name, and device */ + if ((context->tl_rscs[rsc_index].md_index == ae->md_index) && + (context->tl_rscs[rsc_index].tl_name_csum == ae->tl_name_csum) && uct_iface_is_reachable_v2(wiface->iface, ¶ms)) { - EXPECT_EQ(ae->md_index, context->tl_rscs[rsc_index].md_index); return &wiface->attr; } }