diff --git a/codes/net/fattree.h b/codes/net/fattree.h index 2a27e328bae62676cd34ed366901a4456466fe6b..48879b7e938bc3cd902ec961297b3fb78e3f7aa4 100644 --- a/codes/net/fattree.h +++ b/codes/net/fattree.h @@ -3,6 +3,9 @@ #include +/* Functions used for ROSS event tracing */ +extern void fattree_register_evtrace(); + /* Global variable for modelnet output directory name */ extern char *modelnet_stats_dir; diff --git a/src/networks/model-net/fattree.c b/src/networks/model-net/fattree.c index f14d2f3bbb1b05c28b4b36d4cf962bc2fb57f828..f6144f7a859db8dd05d2b4a9967355f9f435be58 100644 --- a/src/networks/model-net/fattree.c +++ b/src/networks/model-net/fattree.c @@ -2959,6 +2959,33 @@ tw_lptype fattree_lps[] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0}, }; +/* For ROSS event tracing */ +void fattree_event_collect(fattree_message *m, tw_lp *lp, char *buffer) +{ + int type = (int) m->type; + memcpy(buffer, &type, sizeof(type)); +} + +st_trace_type fattree_trace_types[] = { + {(rbev_trace_f) fattree_event_collect, + sizeof(int), + (ev_trace_f) fattree_event_collect, + sizeof(int)}, + {0} +}; + +static const st_trace_type *fattree_get_trace_types(void) +{ + return(&fattree_trace_types[0]); +} + +static void fattree_register_trace(st_trace_type *base_type) +{ + trace_type_register(LP_CONFIG_NM, base_type); + trace_type_register("fattree_switch", base_type); +} +/*** END of ROSS event tracing additions */ + /* returns the fattree lp type for lp registration */ static const tw_lptype* fattree_get_cn_lp_type(void) { @@ -2987,6 +3014,8 @@ struct model_net_method fattree_method = .mn_report_stats = fattree_report_stats, // .model_net_method_find_local_device = NULL, .mn_collective_call = NULL, - .mn_collective_call_rc = NULL + .mn_collective_call_rc = NULL, + .mn_trace_register = fattree_register_trace, + .mn_get_trace_type = fattree_get_trace_types };