void TRACE_surf_host_set_power (double date, char *resource, double power);
void TRACE_surf_host_define_id (const char *name, int host_id);
void TRACE_surf_host_vivaldi_parse (char *host, double x, double y, double h);
-void TRACE_surf_link_declaration (char *name, double bw, double lat);
-void TRACE_surf_link_set_bandwidth (double date, char *resource, double bandwidth);
-void TRACE_surf_link_set_latency (double date, char *resource, double latency);
+void TRACE_surf_link_declaration (void *link, char *name, double bw, double lat);
+void TRACE_surf_link_set_bandwidth (double date, void *link, double bandwidth);
+void TRACE_surf_link_set_latency (double date, void *link, double latency);
void TRACE_surf_link_missing (void);
void TRACE_msg_clean (void);
/* from resource_utilization.c */
void TRACE_surf_host_set_utilization (const char *name, smx_action_t smx_action, double value, double now, double delta);
-void TRACE_surf_link_set_utilization (const char *name, smx_action_t smx_action, double value, double now, double delta);
+void TRACE_surf_link_set_utilization (void *link, smx_action_t smx_action, double value, double now, double delta);
void __TRACE_surf_resource_utilization_start (smx_action_t action);
void __TRACE_surf_resource_utilization_event (smx_action_t action, double now, double delta, const char *variable, const char *resource, double value);
void __TRACE_surf_resource_utilization_end (smx_action_t action);
/*
* TRACE_surf_link_set_utilization: entry point from SimGrid
*/
-void TRACE_surf_link_set_utilization (const char *name, smx_action_t smx_action, double value, double now, double delta)
+void TRACE_surf_link_set_utilization (void *link, smx_action_t smx_action, double value, double now, double delta)
{
char type[100];
if (!IS_TRACING || !IS_TRACED(smx_action)) return;
- if (strcmp (name, "__loopback__")==0 ||
- strcmp (name, "loopback")==0){ //ignore loopback updates
- return;
- }
if (!value) return;
+ char resource[100];
+ snprintf (resource, 100, "%p", link);
snprintf (type, 100, "b%s", smx_action->category);
- __TRACE_surf_resource_utilization_event (smx_action, now, delta, type, name, value);
+ __TRACE_surf_resource_utilization_event (smx_action, now, delta, type, resource, value);
return;
}
* main: create LINK container, set initial bandwidth and latency
* return: void
*/
-void TRACE_surf_link_declaration (char *name, double bw, double lat)
+void TRACE_surf_link_declaration (void *link, char *name, double bw, double lat)
{
if (!IS_TRACING) return;
- if (strcmp (name, "__loopback__")==0 ||
- strcmp (name, "loopback")==0){ //ignore loopback updates
- return;
- }
-
- pajeCreateContainer (SIMIX_get_clock(), name, "LINK", "platform", name);
- xbt_dict_set (created_links, name, xbt_strdup ("1"), xbt_free);
- TRACE_surf_link_set_bandwidth (SIMIX_get_clock(), name, bw);
- TRACE_surf_link_set_latency (SIMIX_get_clock(), name, lat);
+ char alias[100];
+ snprintf (alias, 100, "%p", link);
+ pajeCreateContainer (SIMIX_get_clock(), alias, "LINK", "platform", name);
+ xbt_dict_set (created_links, alias, xbt_strdup ("1"), xbt_free);
+ TRACE_surf_link_set_bandwidth (SIMIX_get_clock(), link, bw);
+ TRACE_surf_link_set_latency (SIMIX_get_clock(), link, lat);
}
/*
__TRACE_surf_set_resource_variable (date, "power", resource, power);
}
-void TRACE_surf_link_set_bandwidth (double date, char *resource, double bandwidth)
+void TRACE_surf_link_set_bandwidth (double date, void *link, double bandwidth)
{
+ char resource[100];
+ snprintf (resource, 100, "%p", link);
__TRACE_surf_set_resource_variable (date, "bandwidth", resource, bandwidth);
}
-void TRACE_surf_link_set_latency (double date, char *resource, double latency)
+void TRACE_surf_link_set_latency (double date, void *link, double latency)
{
+ char resource[100];
+ snprintf (resource, 100, "%p", link);
__TRACE_surf_set_resource_variable (date, "latency", resource, latency);
}
void __TRACE_link_variable (double time, const char *src, const char *dst, const char *variable, double value, const char *what)
{
- char valuestr[100];
- xbt_dynar_t route = NULL;
- unsigned int i;
- void *link_ptr;
- char *link = NULL;
if (!IS_TRACING || !IS_TRACING_PLATFORM) return;
+ char valuestr[100];
snprintf (valuestr, 100, "%g", value);
if (strcmp (what, "declare") == 0){
}
if (!global_routing) return;
- route = global_routing->get_route(src, dst);
+ xbt_dynar_t route = global_routing->get_route(src, dst);
+ unsigned int i;
+ void *link_ptr;
xbt_dynar_foreach(route, i, link_ptr) {
- link = (*(link_CM02_t)link_ptr).lmm_resource.generic_resource.name;
+ char resource[100];
+ snprintf (resource, 100, "%p", link_ptr);
if (strcmp (what, "set") == 0){
- pajeSetVariable (time, variable, link, valuestr);
+ pajeSetVariable (time, variable, resource, valuestr);
}else if (strcmp (what, "add") == 0){
- pajeAddVariable (time, variable, link, valuestr);
+ pajeAddVariable (time, variable, resource, valuestr);
}else if (strcmp (what, "sub") == 0){
- pajeSubVariable (time, variable, link, valuestr);
+ pajeSubVariable (time, variable, resource, valuestr);
}
}
}
xbt_dict_set(surf_network_model->resource_set, name, nw_link,
surf_resource_free);
#ifdef HAVE_TRACING
- TRACE_surf_link_declaration (name, bw_initial, lat_initial);
+ TRACE_surf_link_declaration (nw_link, name, bw_initial, lat_initial);
#endif
return nw_link;
link_CM02_t link;
unsigned int i;
xbt_dynar_foreach(route, i, link) {
- TRACE_surf_link_set_utilization (link->lmm_resource.generic_resource.name,
+ TRACE_surf_link_set_utilization (link,
action->generic_action.data, lmm_variable_getvalue(action->variable), now-delta, delta);
}
#endif
(nw_link->lmm_resource.power.peak *
nw_link->lmm_resource.power.scale));
#ifdef HAVE_TRACING
- TRACE_surf_link_set_bandwidth (date, nw_link->lmm_resource.generic_resource.name, sg_bandwidth_factor * (nw_link->lmm_resource.power.peak * nw_link->lmm_resource.power.scale));
+ TRACE_surf_link_set_bandwidth (date, nw_link, sg_bandwidth_factor * (nw_link->lmm_resource.power.peak * nw_link->lmm_resource.power.scale));
#endif
if (sg_weight_S_parameter > 0) {
while ((var = lmm_get_var_from_cnst