@@ -410,13 +410,15 @@ static UCS_F_NOINLINE ucs_status_t ucp_wireup_select_transport(
410
410
ucp_lane_index_t lane ;
411
411
char tls_info [256 ];
412
412
char uct_info [256 ];
413
+ char flags_str [64 ];
413
414
char * p , * endp ;
414
415
uct_iface_attr_t * iface_attr ;
415
416
uct_md_attr_v2_t * md_attr ;
416
417
const uct_component_attr_t * cmpt_attr ;
417
418
int is_reachable ;
418
419
double score ;
419
420
uint8_t priority ;
421
+ uint8_t tl_rsc_flags ;
420
422
ucp_md_index_t md_index ;
421
423
422
424
p = tls_info ;
@@ -494,8 +496,14 @@ static UCS_F_NOINLINE ucs_status_t ucp_wireup_select_transport(
494
496
md_attr = & context -> tl_mds [md_index ].attr ;
495
497
cmpt_attr = ucp_cmpt_attr_by_md_index (context , md_index );
496
498
497
- if ((context -> tl_rscs [rsc_index ].flags & UCP_TL_RSC_FLAG_AUX ) &&
498
- !(criteria -> tl_rsc_flags & UCP_TL_RSC_FLAG_AUX )) {
499
+ tl_rsc_flags = context -> tl_rscs [rsc_index ].flags ;
500
+ if (!(tl_rsc_flags & criteria -> tl_rsc_flags )) {
501
+ ucs_trace (UCT_TL_RESOURCE_DESC_FMT
502
+ " : disabled because it doesn't support %s" ,
503
+ UCT_TL_RESOURCE_DESC_ARG (resource ),
504
+ ucs_flags_str (flags_str , sizeof (flags_str ),
505
+ criteria -> tl_rsc_flags ,
506
+ ucp_tl_rsc_flag_names ));
499
507
continue ;
500
508
}
501
509
@@ -1083,7 +1091,9 @@ static void ucp_wireup_fill_aux_criteria(ucp_wireup_criteria_t *criteria,
1083
1091
ucp_wireup_fill_peer_err_criteria (criteria , ep_init_flags );
1084
1092
}
1085
1093
1086
- static void ucp_wireup_criteria_init (ucp_wireup_criteria_t * criteria )
1094
+ static void
1095
+ ucp_wireup_criteria_init (const ucp_wireup_select_params_t * select_params ,
1096
+ ucp_wireup_criteria_t * criteria )
1087
1097
{
1088
1098
criteria -> title = "" ;
1089
1099
criteria -> local_md_flags = 0 ;
@@ -1093,7 +1103,10 @@ static void ucp_wireup_criteria_init(ucp_wireup_criteria_t *criteria)
1093
1103
criteria -> alloc_mem_types = 0 ;
1094
1104
criteria -> is_keepalive = 0 ;
1095
1105
criteria -> calc_score = NULL ;
1096
- criteria -> tl_rsc_flags = 0 ;
1106
+ criteria -> tl_rsc_flags = (select_params -> ep_init_flags &
1107
+ UCP_EP_INIT_FLAG_MEM_TYPE ) ?
1108
+ UCP_TL_RSC_FLAG_MEM :
1109
+ UCP_TL_RSC_FLAG_COMM ;
1097
1110
ucp_wireup_init_select_flags (& criteria -> local_iface_flags , 0 , 0 );
1098
1111
ucp_wireup_init_select_flags (& criteria -> remote_iface_flags , 0 , 0 );
1099
1112
memset (& criteria -> remote_atomic_flags , 0 ,
@@ -1154,7 +1167,7 @@ ucp_wireup_add_rma_lanes(const ucp_wireup_select_params_t *select_params,
1154
1167
return UCS_OK ;
1155
1168
}
1156
1169
1157
- ucp_wireup_criteria_init (& criteria );
1170
+ ucp_wireup_criteria_init (select_params , & criteria );
1158
1171
if (ep_init_flags & UCP_EP_INIT_FLAG_MEM_TYPE ) {
1159
1172
criteria .title = "copy across memory types" ;
1160
1173
ucp_wireup_init_select_flags (& criteria .local_iface_flags ,
@@ -1221,7 +1234,7 @@ ucp_wireup_add_amo_lanes(const ucp_wireup_select_params_t *select_params,
1221
1234
return UCS_OK ;
1222
1235
}
1223
1236
1224
- ucp_wireup_criteria_init (& criteria );
1237
+ ucp_wireup_criteria_init (select_params , & criteria );
1225
1238
criteria .title = "atomic operations on %s memory" ;
1226
1239
criteria .local_atomic_flags = criteria .remote_atomic_flags ;
1227
1240
criteria .calc_score = ucp_wireup_amo_score_func ;
@@ -1464,13 +1477,15 @@ ucp_wireup_add_am_lane(const ucp_wireup_select_params_t *select_params,
1464
1477
1465
1478
/* Select one lane for active messages */
1466
1479
for (;;) {
1467
- ucp_wireup_criteria_init (& criteria );
1468
- criteria .title = "active messages" ;
1469
- criteria .calc_score = ucp_wireup_am_score_func ;
1470
- criteria .lane_type = UCP_LANE_TYPE_AM ;
1471
- criteria .tl_rsc_flags =
1472
- (ep_init_flags & UCP_EP_INIT_ALLOW_AM_AUX_TL ) ?
1473
- UCP_TL_RSC_FLAG_AUX : 0 ;
1480
+ ucp_wireup_criteria_init (select_params , & criteria );
1481
+ criteria .calc_score = ucp_wireup_am_score_func ;
1482
+ criteria .lane_type = UCP_LANE_TYPE_AM ;
1483
+ if (ep_init_flags & UCP_EP_INIT_ALLOW_AM_AUX_TL ) {
1484
+ criteria .title = "auxiliary active messages" ;
1485
+ criteria .tl_rsc_flags |= UCP_TL_RSC_FLAG_AUX ;
1486
+ } else {
1487
+ criteria .title = "active messages" ;
1488
+ }
1474
1489
ucp_wireup_init_select_flags (& criteria .local_iface_flags ,
1475
1490
UCT_IFACE_FLAG_AM_BCOPY , 0 );
1476
1491
ucp_wireup_init_select_flags (& criteria .remote_iface_flags ,
@@ -1905,7 +1920,7 @@ ucp_wireup_add_am_bw_lanes(const ucp_wireup_select_params_t *select_params,
1905
1920
}
1906
1921
1907
1922
/* Select one lane for active messages */
1908
- ucp_wireup_criteria_init (& bw_info .criteria );
1923
+ ucp_wireup_criteria_init (select_params , & bw_info .criteria );
1909
1924
bw_info .criteria .title = "high-bw active messages" ;
1910
1925
bw_info .criteria .calc_score = ucp_wireup_am_bw_score_func ;
1911
1926
bw_info .criteria .lane_type = UCP_LANE_TYPE_AM_BW ;
@@ -2074,7 +2089,7 @@ ucp_wireup_add_rma_bw_lanes(const ucp_wireup_select_params_t *select_params,
2074
2089
return UCS_OK ;
2075
2090
}
2076
2091
2077
- ucp_wireup_criteria_init (& bw_info .criteria );
2092
+ ucp_wireup_criteria_init (select_params , & bw_info .criteria );
2078
2093
bw_info .criteria .calc_score = ucp_wireup_rma_bw_score_func ;
2079
2094
ucp_wireup_init_select_flags (& bw_info .criteria .local_iface_flags ,
2080
2095
UCT_IFACE_FLAG_PENDING , 0 );
@@ -2237,7 +2252,7 @@ ucp_wireup_add_tag_lane(const ucp_wireup_select_params_t *select_params,
2237
2252
return UCS_OK ;
2238
2253
}
2239
2254
2240
- ucp_wireup_criteria_init (& criteria );
2255
+ ucp_wireup_criteria_init (select_params , & criteria );
2241
2256
criteria .title = "tag_offload" ;
2242
2257
criteria .calc_score = ucp_wireup_am_score_func ;
2243
2258
criteria .lane_type = UCP_LANE_TYPE_TAG ;
@@ -2401,7 +2416,7 @@ ucp_wireup_add_keepalive_lane(const ucp_wireup_select_params_t *select_params,
2401
2416
tl_bitmap = & select_params -> tl_bitmap ;
2402
2417
}
2403
2418
2404
- ucp_wireup_criteria_init (& criteria );
2419
+ ucp_wireup_criteria_init (select_params , & criteria );
2405
2420
criteria .title = "keepalive" ;
2406
2421
criteria .local_md_flags = 0 ;
2407
2422
criteria .is_keepalive = 1 ;
0 commit comments