From 9043c49c1bb2a3568701842d971b95216b08e53b Mon Sep 17 00:00:00 2001 From: Thomas Vegas Date: Thu, 2 Oct 2025 11:19:43 +0300 Subject: [PATCH] UCP/RKEY: Sender flush if memory sys_dev is not remote lane sys_dev --- src/ucp/proto/proto_multi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ucp/proto/proto_multi.c b/src/ucp/proto/proto_multi.c index f40a4a4cb91..22c6d79b7d4 100644 --- a/src/ucp/proto/proto_multi.c +++ b/src/ucp/proto/proto_multi.c @@ -144,13 +144,14 @@ ucp_proto_multi_select_bw_lanes(const ucp_proto_init_params_t *params, static ucp_sys_dev_map_t ucp_proto_multi_init_flush_sys_dev_mask( const ucp_proto_multi_init_params_t *params, ucp_lane_index_t lane) { - const ucp_rkey_config_key_t *key = params->super.super.rkey_config_key; - const uct_iface_attr_t *iface_attr = - ucp_proto_common_get_iface_attr(¶ms->super.super, lane); + const ucp_rkey_config_key_t *key = params->super.super.rkey_config_key; + ucs_sys_device_t dst_sys_dev = + params->super.super.ep_config_key->lanes[lane].dst_sys_dev; + /* Flush needed when remote lane sys_dev is not the final memory sys_dev */ if ((key == NULL) || !ucp_rkey_need_remote_flush(key) || - !(iface_attr->cap.flags & UCT_IFACE_FLAG_GET_BCOPY) || - !ucp_proto_common_is_net_dev(¶ms->super.super, lane)) { + (dst_sys_dev == UCS_SYS_DEVICE_ID_UNKNOWN) || + (dst_sys_dev == key->sys_dev)) { return 0; }