- if (TRACE_smpi_is_enabled()) {
- if (TRACE_smpi_is_grouped()){
- pajeDefineContainerType("MPI_PROCESS", "HOST", "MPI_PROCESS");
- }else{
- pajeDefineContainerType("MPI_PROCESS", "PLATFORM", "MPI_PROCESS");
- }
- pajeDefineStateType("MPI_STATE", "MPI_PROCESS", "MPI_STATE");
- pajeDefineLinkType("MPI_LINK", "0", "MPI_PROCESS", "MPI_PROCESS",
- "MPI_LINK");
+static void instr_user_srcdst_variable(double time,
+ const char *src,
+ const char *dst,
+ const char *variable,
+ const char *father_type,
+ double value,
+ InstrUserVariable what)
+{
+ xbt_dynar_t route=NULL;
+ network_element_t src_elm = xbt_lib_get_or_null(host_lib,src,ROUTING_HOST_LEVEL);
+ if(!src_elm) src_elm = xbt_lib_get_or_null(as_router_lib,src,ROUTING_ASR_LEVEL);
+ if(!src_elm) xbt_die("Element '%s' not found!",src);
+
+ network_element_t dst_elm = xbt_lib_get_or_null(host_lib,dst,ROUTING_HOST_LEVEL);
+ if(!dst_elm) dst_elm = xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
+ if(!dst_elm) xbt_die("Element '%s' not found!",dst);
+
+ routing_get_route_and_latency (src_elm, dst_elm, &route,NULL);
+ unsigned int i;
+ void *link;
+ xbt_dynar_foreach (route, i, link) {
+ char *link_name = ((link_CM02_t)link)->lmm_resource.generic_resource.name;
+ instr_user_variable (time, link_name, variable, father_type, value, what, NULL);