From 7d784a4ff14612a23775548d34536766f9f43b76 Mon Sep 17 00:00:00 2001 From: Roie Danino Date: Thu, 22 Jan 2026 11:11:12 +0200 Subject: [PATCH 1/2] UCT/IB: disable indirect atomic registration for direct nic (#11111) Signed-off-by: Roie Danino (cherry picked from commit c92698ec2783cb6a2081553068d6dfade6a277b3) --- src/uct/ib/base/ib_md.h | 2 ++ src/uct/ib/mlx5/dv/ib_mlx5dv_md.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/uct/ib/base/ib_md.h b/src/uct/ib/base/ib_md.h index c98f3aff443..690bf08141a 100644 --- a/src/uct/ib/base/ib_md.h +++ b/src/uct/ib/base/ib_md.h @@ -65,6 +65,8 @@ enum { threads */ UCT_IB_MEM_IMPORTED = UCS_BIT(3), /**< The memory handle was created by mem_attach */ + UCT_IB_MEM_DIRECT_NIC = UCS_BIT(6), /**< The memory handle was + registered using Direct NIC */ #if ENABLE_PARAMS_CHECK UCT_IB_MEM_ACCESS_REMOTE_RMA = UCS_BIT(4), /**< RMA access was requested for the memory region */ diff --git a/src/uct/ib/mlx5/dv/ib_mlx5dv_md.c b/src/uct/ib/mlx5/dv/ib_mlx5dv_md.c index 08a7a9e28f5..7925c4b6308 100644 --- a/src/uct/ib/mlx5/dv/ib_mlx5dv_md.c +++ b/src/uct/ib/mlx5/dv/ib_mlx5dv_md.c @@ -856,6 +856,7 @@ uct_ib_mlx5_devx_reg_mr(uct_ib_mlx5_md_t *md, uct_ib_mlx5_devx_mem_t *memh, length, params, access_flags); if (memh->mrs[mr_type].super.ib != NULL) { + memh->super.flags |= UCT_IB_MEM_DIRECT_NIC; goto out; } @@ -2946,6 +2947,7 @@ uct_ib_mlx5_devx_mkey_pack(uct_md_h uct_md, uct_mem_h uct_memh, ((memh->super.flags & UCT_IB_MEM_ACCESS_REMOTE_ATOMIC) || uct_ib_mlx5_devx_memh_has_ro(md, memh)) && !(memh->super.flags & UCT_IB_MEM_IMPORTED) && + !(memh->super.flags & UCT_IB_MEM_DIRECT_NIC) && md->super.config.enable_indirect_atomic && ucs_test_all_flags(md->flags, UCT_IB_MLX5_MD_FLAG_KSM | From 17758836895c1ff839dd3bb5df8b7d0024d50676 Mon Sep 17 00:00:00 2001 From: Roie Danino Date: Tue, 27 Jan 2026 12:16:14 +0200 Subject: [PATCH 2/2] UCT/IB/BASE: fixed ib mem handle flags enum order Signed-off-by: Roie Danino (cherry picked from commit e60504552c2873adae26ee9d706b4192362444e0) --- src/uct/ib/base/ib_md.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/uct/ib/base/ib_md.h b/src/uct/ib/base/ib_md.h index 690bf08141a..7734eb7a810 100644 --- a/src/uct/ib/base/ib_md.h +++ b/src/uct/ib/base/ib_md.h @@ -65,8 +65,6 @@ enum { threads */ UCT_IB_MEM_IMPORTED = UCS_BIT(3), /**< The memory handle was created by mem_attach */ - UCT_IB_MEM_DIRECT_NIC = UCS_BIT(6), /**< The memory handle was - registered using Direct NIC */ #if ENABLE_PARAMS_CHECK UCT_IB_MEM_ACCESS_REMOTE_RMA = UCS_BIT(4), /**< RMA access was requested for the memory region */ @@ -75,6 +73,8 @@ enum { #endif UCT_IB_MEM_FLAG_GVA = UCS_BIT(5), /**< The memory handle is a GVA region */ + UCT_IB_MEM_DIRECT_NIC = UCS_BIT(6), /**< The memory handle was + registered using Direct NIC */ }; enum {