}
}
+static void gap_unknown(surf_action_network_CM02_t action) {
+ action->sender.gap = 0.0;
+ action->sender.link_name = NULL;
+ action->sender.fifo_item = NULL;
+ action->sender.size = 0.0;
+}
+
static void gap_remove(surf_action_network_CM02_t action) {
xbt_fifo_t fifo;
size_t size;
- if(sg_sender_gap > 0.0) {
+ if(sg_sender_gap > 0.0 && action->sender.link_name && action->sender.fifo_item) {
fifo = (xbt_fifo_t)xbt_dict_get_or_null(gap_lookup, action->sender.link_name);
xbt_fifo_remove_item(fifo, action->sender.fifo_item);
size = xbt_fifo_size(fifo);
xbt_dict_set(surf_network_model->resource_set, name, nw_link,
surf_resource_free);
-#ifdef HAVE_TRACING
- TRACE_surf_link_declaration(nw_link, name, bw_initial, lat_initial);
-#endif
return nw_link;
}
e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON;
e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED;
tmgr_trace_t state_trace;
- DEBUG0("link_CM02");
+ XBT_DEBUG("link_CM02");
name_link = xbt_strdup(A_surfxml_link_id);
surf_parse_get_double(&bw_initial, A_surfxml_link_bandwidth);
bw_trace = tmgr_trace_new(A_surfxml_link_bandwidth_file);
if (action->category)
xbt_free(action->category);
#endif
- free(action);
+ surf_action_free(&action);
return 1;
}
return 0;
}
}
+ XBT_DEBUG("Min of share resources %f", min);
+
return min;
}
link_CM02_t link;
unsigned int i;
xbt_dynar_foreach(route, i, link) {
- TRACE_surf_link_set_utilization(link,
+ TRACE_surf_link_set_utilization(link->lmm_resource.generic_resource.name,
action->generic_action.data,
(surf_action_t) action,
lmm_variable_getvalue
(nw_link->lmm_resource.power.peak *
nw_link->lmm_resource.power.scale));
#ifdef HAVE_TRACING
- TRACE_surf_link_set_bandwidth(date, nw_link,
+ 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));
action->lat_current)));
if (action->rate < sg_tcp_gamma / (2.0 * action->lat_current)) {
- INFO0("Flow is limited BYBANDWIDTH");
+ XBT_INFO("Flow is limited BYBANDWIDTH");
} else {
- INFO1("Flow is limited BYLATENCY, latency of flow is %f",
+ XBT_INFO("Flow is limited BYLATENCY, latency of flow is %f",
action->lat_current);
}
}
if (tmgr_trace_event_free(event_type))
nw_link->lmm_resource.state_event = NULL;
} else {
- CRITICAL0("Unknown event ! \n");
+ XBT_CRITICAL("Unknown event ! \n");
xbt_abort();
}
/* LARGE PLATFORMS HACK:
total_route_size = route_size + src->link_nb + dst->nb */
- XBT_IN4("(%s,%s,%g,%g)", src_name, dst_name, size, rate);
+ XBT_IN("(%s,%s,%g,%g)", src_name, dst_name, size, rate);
/* LARGE PLATFORMS HACK:
assert on total_route_size */
latency = global_routing->get_latency(src_name,dst_name);
(*bandwidth_constraint_callback) (action->rate, bandwidth_bound,
size);
- link = *(link_CM02_t*)xbt_dynar_get_ptr(route, 0);
- gap_append(size, link, action);
- DEBUG5("Comm %p: %s -> %s gap=%f (lat=%f)",
- action, src_name, dst_name, action->sender.gap, action->latency);
+ if(xbt_dynar_length(route) > 0) {
+ link = *(link_CM02_t*)xbt_dynar_get_ptr(route, 0);
+ gap_append(size, link, action);
+ XBT_DEBUG("Comm %p: %s -> %s gap=%f (lat=%f)",
+ action, src_name, dst_name, action->sender.gap, action->latency);
+ } else {
+ gap_unknown(action);
+ }
/* LARGE PLATFORMS HACK:
}
if (sg_network_fullduplex == 1) {
- DEBUG1("Fullduplex active adding backward flow using 5%c", '%');
+ XBT_DEBUG("Fullduplex active adding backward flow using 5%c", '%');
xbt_dynar_foreach(back_route, i, link) {
lmm_expand(network_maxmin_system, link->lmm_resource.constraint,
action->variable, .05);
/* LARGE PLATFORMS HACK:
expand also with src->link and dst->link */
#ifdef HAVE_TRACING
- action->src_name = xbt_new(char, strlen(src_name) + 1);
- strncpy(action->src_name, src_name, strlen(src_name) + 1);
+ action->src_name = xbt_strdup(src_name);
- action->dst_name = xbt_new(char, strlen(dst_name) + 1);
- strncpy(action->dst_name, dst_name, strlen(dst_name) + 1);
+ action->dst_name = xbt_strdup(dst_name);
#endif
xbt_dynar_free(&route);
- XBT_OUT;
+ XBT_OUT();
return (surf_action_t) action;
}