Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/ucp/core/ucp_context.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 } },
Expand Down
2 changes: 1 addition & 1 deletion src/ucp/core/ucp_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;


Expand Down
21 changes: 16 additions & 5 deletions src/uct/ib/mlx5/gdaki/gdaki.c
Original file line number Diff line number Diff line change
@@ -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.
*/
Expand All @@ -10,6 +10,7 @@

#include "gdaki.h"

#include <ucs/sys/sock.h>
#include <ucs/time/time.h>
#include <ucs/datastruct/string_buffer.h>
#include <ucs/algorithm/qsort_r.h>
Expand Down Expand Up @@ -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));
Expand Down Expand Up @@ -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;
Expand All @@ -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)
Expand Down Expand Up @@ -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 |
Expand All @@ -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, &params, UCT_IB_MEM_ACCESS_FLAGS,
NULL, mr_p);
status = uct_ib_reg_mr(md, address, length, &params,
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,
Expand Down
6 changes: 3 additions & 3 deletions test/gtest/ucp/test_ucp_wireup.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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, &params)) {
EXPECT_EQ(ae->md_index, context->tl_rscs[rsc_index].md_index);
return &wiface->attr;
}
}
Expand Down
Loading