@@ -235,7 +235,7 @@ ucp_proto_common_get_frag_size(const ucp_proto_common_init_params_t *params,
235235
236236/* Update 'perf' with the distance */
237237static void ucp_proto_common_update_lane_perf_by_distance (
238- ucp_proto_common_tl_perf_t * perf , ucp_proto_perf_node_t * perf_node ,
238+ ucp_proto_common_tl_perf_t * perf ,
239239 const ucs_sys_dev_distance_t * distance , const char * perf_name ,
240240 const char * perf_fmt , ...)
241241{
@@ -261,7 +261,7 @@ static void ucp_proto_common_update_lane_perf_by_distance(
261261 sys_perf_node = ucp_proto_perf_node_new_data (perf_name , "%s" ,
262262 perf_node_desc );
263263 ucp_proto_perf_node_add_data (sys_perf_node , "" , distance_func );
264- ucp_proto_perf_node_own_child (perf_node , & sys_perf_node );
264+ ucp_proto_perf_node_own_child (perf -> node , & sys_perf_node );
265265}
266266
267267void ucp_proto_common_lane_perf_node (ucp_context_h context ,
@@ -317,6 +317,7 @@ static void ucp_proto_common_tl_perf_reset(ucp_proto_common_tl_perf_t *tl_perf)
317317 tl_perf -> sys_latency = 0 ;
318318 tl_perf -> min_length = 0 ;
319319 tl_perf -> max_frag = SIZE_MAX ;
320+ tl_perf -> node = NULL ;
320321}
321322
322323static void ucp_proto_common_perf_attr_set_mem_type (
@@ -337,15 +338,14 @@ static void ucp_proto_common_perf_attr_set_mem_type(
337338ucs_status_t
338339ucp_proto_common_get_lane_perf (const ucp_proto_common_init_params_t * params ,
339340 ucp_lane_index_t lane ,
340- ucp_proto_common_tl_perf_t * tl_perf ,
341- ucp_proto_perf_node_t * * perf_node_p )
341+ ucp_proto_common_tl_perf_t * tl_perf )
342342{
343343 ucp_worker_h worker = params -> super .worker ;
344344 ucp_context_h context = worker -> context ;
345345 ucp_rsc_index_t rsc_index = ucp_proto_common_get_rsc_index (& params -> super ,
346346 lane );
347347 ucp_worker_iface_t * wiface = ucp_worker_iface (worker , rsc_index );
348- ucp_proto_perf_node_t * perf_node , * lane_perf_node ;
348+ ucp_proto_perf_node_t * lane_perf_node ;
349349 const ucp_rkey_config_t * rkey_config ;
350350 ucs_sys_dev_distance_t distance ;
351351 size_t tl_min_frag , tl_max_frag ;
@@ -356,7 +356,6 @@ ucp_proto_common_get_lane_perf(const ucp_proto_common_init_params_t *params,
356356
357357 if (lane == UCP_NULL_LANE ) {
358358 ucp_proto_common_tl_perf_reset (tl_perf );
359- * perf_node_p = NULL ;
360359 return UCS_OK ;
361360 }
362361
@@ -370,9 +369,9 @@ ucp_proto_common_get_lane_perf(const ucp_proto_common_init_params_t *params,
370369 return UCS_ERR_INVALID_PARAM ;
371370 }
372371
373- perf_node = ucp_proto_perf_node_new_data ("lane" , "%u ppn %u eps" ,
374- context -> config .est_num_ppn ,
375- context -> config .est_num_eps );
372+ tl_perf -> node = ucp_proto_perf_node_new_data ("lane" , "%u ppn %u eps" ,
373+ context -> config .est_num_ppn ,
374+ context -> config .est_num_eps );
376375
377376 perf_attr .field_mask = UCT_PERF_ATTR_FIELD_OPERATION |
378377 UCT_PERF_ATTR_FIELD_SEND_PRE_OVERHEAD |
@@ -406,7 +405,7 @@ ucp_proto_common_get_lane_perf(const ucp_proto_common_init_params_t *params,
406405
407406 ucp_proto_common_lane_perf_node (context , rsc_index , & perf_attr ,
408407 & lane_perf_node );
409- ucp_proto_perf_node_own_child (perf_node , & lane_perf_node );
408+ ucp_proto_perf_node_own_child (tl_perf -> node , & lane_perf_node );
410409
411410 /* If reg_mem_info type is not unknown we assume the protocol is going to
412411 * send that mem type in a zero copy fashion. So, need to consider the
@@ -423,7 +422,7 @@ ucp_proto_common_get_lane_perf(const ucp_proto_common_init_params_t *params,
423422 ucp_proto_common_get_lane_distance (& params -> super , lane , sys_dev ,
424423 & distance );
425424 ucp_proto_common_update_lane_perf_by_distance (
426- tl_perf , perf_node , & distance , "local system" , "%s %s" ,
425+ tl_perf , & distance , "local system" , "%s %s" ,
427426 ucs_topo_sys_device_get_name (sys_dev ),
428427 ucs_topo_sys_device_bdf_name (sys_dev , bdf_name ,
429428 sizeof (bdf_name )));
@@ -437,7 +436,7 @@ ucp_proto_common_get_lane_perf(const ucp_proto_common_init_params_t *params,
437436 rkey_config = & worker -> rkey_config [params -> super .rkey_cfg_index ];
438437 distance = rkey_config -> lanes_distance [lane ];
439438 ucp_proto_common_update_lane_perf_by_distance (
440- tl_perf , perf_node , & distance , "remote system" , "sys-dev %d %s" ,
439+ tl_perf , & distance , "remote system" , "sys-dev %d %s" ,
441440 rkey_config -> key .sys_dev ,
442441 ucs_memory_type_names [rkey_config -> key .mem_type ]);
443442 }
@@ -451,20 +450,18 @@ ucp_proto_common_get_lane_perf(const ucp_proto_common_init_params_t *params,
451450 params -> hdr_size );
452451 ucs_assert (tl_perf -> sys_latency >= 0 );
453452
454- ucp_proto_perf_node_add_bandwidth (perf_node , "bw" , tl_perf -> bandwidth );
455- ucp_proto_perf_node_add_scalar (perf_node , "lat" , tl_perf -> latency );
456- ucp_proto_perf_node_add_scalar (perf_node , "sys-lat" , tl_perf -> sys_latency );
457- ucp_proto_perf_node_add_scalar (perf_node , "send-pre" ,
453+ ucp_proto_perf_node_add_bandwidth (tl_perf -> node , "bw" , tl_perf -> bandwidth );
454+ ucp_proto_perf_node_add_scalar (tl_perf -> node , "lat" , tl_perf -> latency );
455+ ucp_proto_perf_node_add_scalar (tl_perf -> node , "sys-lat" , tl_perf -> sys_latency );
456+ ucp_proto_perf_node_add_scalar (tl_perf -> node , "send-pre" ,
458457 tl_perf -> send_pre_overhead );
459- ucp_proto_perf_node_add_scalar (perf_node , "send-post" ,
458+ ucp_proto_perf_node_add_scalar (tl_perf -> node , "send-post" ,
460459 tl_perf -> send_post_overhead );
461- ucp_proto_perf_node_add_scalar (perf_node , "recv" , tl_perf -> recv_overhead );
462-
463- * perf_node_p = perf_node ;
460+ ucp_proto_perf_node_add_scalar (tl_perf -> node , "recv" , tl_perf -> recv_overhead );
464461 return UCS_OK ;
465462
466463err_deref_perf_node :
467- ucp_proto_perf_node_deref (& perf_node );
464+ ucp_proto_perf_node_deref (& tl_perf -> node );
468465 return status ;
469466}
470467
0 commit comments