@@ -2435,6 +2435,18 @@ ucp_wireup_select_context_init(ucp_wireup_select_context_t *select_ctx)
24352435 UCS_STATIC_BITMAP_RESET_ALL (& select_ctx -> tl_bitmap );
24362436}
24372437
2438+ static double ucp_wireup_device_score_func (const ucp_worker_iface_t * wiface ,
2439+ const uct_md_attr_v2_t * md_attr ,
2440+ const ucp_unpacked_address_t * unpacked_addr ,
2441+ const ucp_address_entry_t * remote_addr ,
2442+ int is_prioritized_ep , void * arg )
2443+ {
2444+ ucp_wireup_dev_usage_count * dev_count = arg ;
2445+
2446+ return ucp_wireup_iface_avail_bandwidth (wiface , unpacked_addr , remote_addr ,
2447+ dev_count ) / UCS_MBYTE ;
2448+ }
2449+
24382450/* Also ignore error mode when set to peer failure */
24392451static ucs_status_t
24402452ucp_wireup_add_device_lanes (const ucp_wireup_select_params_t * select_params ,
@@ -2462,7 +2474,7 @@ ucp_wireup_add_device_lanes(const ucp_wireup_select_params_t *select_params,
24622474 ucp_wireup_init_select_flags (& peer_rma_flags , 0 , 0 );
24632475 ucp_wireup_criteria_init (& bw_info .criteria );
24642476
2465- bw_info .criteria .calc_score = ucp_wireup_rma_bw_score_func ;
2477+ bw_info .criteria .calc_score = ucp_wireup_device_score_func ;
24662478 ucp_wireup_init_select_flags (& bw_info .criteria .local_iface_flags ,
24672479 UCT_IFACE_FLAG_DEVICE_EP , 0 );
24682480
0 commit comments