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;
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;
}
return;
}
-int net_get_link_latency(surf_action_t action)
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+int net_get_link_latency_limited(surf_action_t action)
{
return action->latency_limited;
}
+#endif
double net_action_get_remains(surf_action_t action)
{
#define VARIABLE(action) (*((lmm_variable_t*)(((char *) (action)) + xbt_swag_offset(s_action, variable) )))
xbt_swag_foreach(action, running_actions) {
- if( lmm_is_variable_limited_by_latency(action->variable) ){
- (action->generic_action).latency_limited = 1;
- }else{
- (action->generic_action).latency_limited = 0;
- }
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ if( lmm_is_variable_limited_by_latency(action->variable) ){
+ (action->generic_action).latency_limited = 1;
+ }else{
+ (action->generic_action).latency_limited = 0;
+ }
+#endif
if (action->latency > 0) {
if (min < 0)
min = action->latency;
*/
xbt_swag_foreach_safe(action, next_action, running_actions) {
-#ifdef HAVE_TRACING
-// COMMENTED BY DAVID
-// 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) {
action->weight);
}
#ifdef HAVE_TRACING
- xbt_dynar_t route = used_routing->get_route(action->src, action->dst);
+ xbt_dynar_t route = global_routing->get_route(action->src_name, action->dst_name);
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
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); // COMMENTED BY DAVID
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); // COMMENTED BY DAVID
back_route = global_routing->get_route(src_name, dst_name);
}
action =
surf_action_new(sizeof(s_surf_action_network_CM02_t), size,
surf_network_model, failed);
+#ifdef HAVE_LATENCY_BOUND_TRACKING
(action->generic_action).latency_limited = 0;
+#endif
xbt_swag_insert(action, action->generic_action.state_set);
action->rate = rate;
} /* 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->dst_name = xbt_new (char, strlen(dst_name)+1);
+ strncpy (action->dst_name, dst_name, strlen(dst_name)+1);
+#endif
+
XBT_OUT;
return (surf_action_t) action;
return lmm->power.peak * lmm->power.scale;
}
+static double net_get_link_latency(const void *link)
+{
+ return ((link_CM02_t) link)->lat_current;
+}
+
static int net_link_shared(const void *link)
{
return lmm_constraint_is_shared(((surf_resource_lmm_t) link)->constraint);
{
surf_model_exit(surf_network_model);
surf_network_model = NULL;
-
- //used_routing->finalize(); // COMMENTED BY DAVID
global_routing->finalize();
surf_network_model->action_cancel = net_action_cancel;
surf_network_model->action_recycle = net_action_recycle;
surf_network_model->get_remains = net_action_get_remains;
- surf_network_model->get_latency_limited = net_get_link_latency;
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ surf_network_model->get_latency_limited = net_get_link_latency_limited;
+#endif
surf_network_model->model_private->resource_used = net_resource_used;
surf_network_model->model_private->share_resources = net_share_resources;
surf_network_model->extension.network.communicate = net_communicate;
surf_network_model->extension.network.get_link_bandwidth =
net_get_link_bandwidth;
+ surf_network_model->extension.network.get_link_latency =
+ net_get_link_latency;
surf_network_model->extension.network.link_shared = net_link_shared;
surf_network_model->extension.network.add_traces = net_add_traces;
surf_network_model->extension.network.create_resource = net_create_resource;