X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7231545543fa5be730a575fb278656247717e865..6c053c9587e3a72153e0cc2c4494dbded6b4c788:/src/surf/network.c diff --git a/src/surf/network.c b/src/surf/network.c index 4827178a82..de8096361a 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -255,6 +255,10 @@ static int net_action_unref(surf_action_t action) if (((surf_action_network_CM02_t) action)->variable) lmm_variable_free(network_maxmin_system, ((surf_action_network_CM02_t) action)->variable); +#ifdef HAVE_TRACING + xbt_free (((surf_action_network_CM02_t)action)->src_name); + xbt_free (((surf_action_network_CM02_t)action)->dst_name); +#endif free(action); return 1; } @@ -324,17 +328,6 @@ static void net_update_actions_state(double now, double delta) */ xbt_swag_foreach_safe(action, next_action, running_actions) { - -#ifdef HAVE_TRACING - xbt_dynar_t route = used_routing->get_route(action->src, action->dst); - link_CM02_t link; - unsigned int i; - xbt_dynar_foreach(route, i, link) { - TRACE_surf_link_set_utilization (link->lmm_resource.generic_resource.name, - action->generic_action.data, lmm_variable_getvalue(action->variable), now-delta, delta); - } -#endif - deltap = delta; if (action->latency > 0) { if (action->latency > deltap) { @@ -348,6 +341,15 @@ static void net_update_actions_state(double now, double delta) lmm_update_variable_weight(network_maxmin_system, action->variable, action->weight); } +#ifdef HAVE_TRACING + xbt_dynar_t route = used_routing->get_route(action->src, action->dst); + link_CM02_t link; + unsigned int i; + xbt_dynar_foreach(route, i, link) { + TRACE_surf_link_set_utilization (link->lmm_resource.generic_resource.name, + action->generic_action.data, lmm_variable_getvalue(action->variable), now-delta, delta); + } +#endif double_update(&(action->generic_action.remains), lmm_variable_getvalue(action->variable) * deltap); if (action->generic_action.max_duration != NO_MAX_DURATION) @@ -475,7 +477,7 @@ static void net_update_resource_state(void *id, static surf_action_t net_communicate(const char *src_name, const char *dst_name, - int src, int dst, double size, double rate) + double size, double rate) { unsigned int i; link_CM02_t link; @@ -485,14 +487,15 @@ static surf_action_t net_communicate(const char *src_name, const char *dst_name, /* LARGE PLATFORMS HACK: Add a link_CM02_t *link and a int link_nb to network_card_CM02_t. It will represent local links for this node Use the cluster_id for ->id */ - xbt_dynar_t route = used_routing->get_route(src, dst); + + xbt_dynar_t route = global_routing->get_route(src_name, dst_name); xbt_dynar_t back_route = NULL; int constraints_per_variable = 0; if( sg_network_fullduplex == 1){ - back_route = used_routing->get_route(dst, src); + back_route = global_routing->get_route(src_name, dst_name); } - + /* LARGE PLATFORMS HACK: total_route_size = route_size + src->link_nb + dst->nb */ @@ -584,9 +587,13 @@ static surf_action_t net_communicate(const char *src_name, const char *dst_name, } /* LARGE PLATFORMS HACK: expand also with src->link and dst->link */ - /* saving the src and dst of this communication */ - action->src = src; - action->dst = dst; +#ifdef HAVE_TRACING + action->src_name = xbt_new (char, strlen(src_name)+1); + strncpy (action->src_name, src_name, strlen(src_name)+1); + + action->dst_name = xbt_new (char, strlen(dst_name)+1); + strncpy (action->dst_name, dst_name, strlen(dst_name)+1); +#endif XBT_OUT; @@ -637,8 +644,9 @@ static void net_finalize(void) { surf_model_exit(surf_network_model); surf_network_model = NULL; - - used_routing->finalize(); + + global_routing->finalize(); + lmm_system_free(network_maxmin_system); network_maxmin_system = NULL; }