X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/123eb94b4e6a8db258c498d38ac1b21656f0f840..c24da98fc757fe34eb3fdb29b01c80d77313a80a:/src/surf/network_constant.c diff --git a/src/surf/network_constant.c b/src/surf/network_constant.c index 75f0634cea..e1be0fe41a 100644 --- a/src/surf/network_constant.c +++ b/src/surf/network_constant.c @@ -52,10 +52,21 @@ static void netcste_action_cancel(surf_action_t action) static double netcste_share_resources(double now) { - if (!xbt_swag_size(surf_network_model->states.running_action_set)) { - return -1.0; + surf_action_network_Constant_t action = NULL; + xbt_swag_t running_actions = + surf_network_model->states.running_action_set; + double min = -1.0; + + xbt_swag_foreach(action, running_actions) { + if (action->latency > 0) { + if (min < 0) + min = action->latency; + else if (action->latency < min) + min = action->latency; + } } - return sg_latency_factor; + + return min; } static void netcste_update_actions_state(double now, double delta) @@ -98,12 +109,15 @@ static void netcste_update_resource_state(void *id, DIE_IMPOSSIBLE; } -static surf_action_t netcste_communicate(const char *src_name, - const char *dst_name, double size, - double rate) +static surf_action_t netcste_communicate(sg_routing_edge_t src, + sg_routing_edge_t dst, + double size, double rate) { surf_action_network_Constant_t action = NULL; + char *src_name = src->name; + char *dst_name = dst->name; + XBT_IN("(%s,%s,%g,%g)", src_name, dst_name, size, rate); action = @@ -136,16 +150,19 @@ static void netcste_action_set_category(surf_action_t action, const char *catego static double netcste_get_link_bandwidth(const void *link) { DIE_IMPOSSIBLE; + return -1.0; } static double netcste_get_link_latency(const void *link) { DIE_IMPOSSIBLE; + return -1.0; } static int link_shared(const void *link) { DIE_IMPOSSIBLE; + return -1; } static void netcste_action_suspend(surf_action_t action) @@ -183,7 +200,7 @@ void surf_network_model_init_Constant() surf_network_model->action_unref = netcste_action_unref; surf_network_model->action_cancel = netcste_action_cancel; surf_network_model->action_recycle = net_action_recycle; - surf_network_model->get_remains = net_action_get_remains; + surf_network_model->get_remains = surf_action_get_remains; #ifdef HAVE_LATENCY_BOUND_TRACKING surf_network_model->get_latency_limited = net_get_link_latency_limited; #endif @@ -200,7 +217,7 @@ void surf_network_model_init_Constant() surf_network_model->suspend = netcste_action_suspend; surf_network_model->resume = netcste_action_resume; surf_network_model->is_suspended = netcste_action_is_suspended; - surf_cpu_model->set_max_duration = net_action_set_max_duration; + surf_cpu_model->set_max_duration = surf_action_set_max_duration; surf_network_model->extension.network.communicate = netcste_communicate; surf_network_model->extension.network.get_link_bandwidth = @@ -217,6 +234,5 @@ void surf_network_model_init_Constant() netcste_define_callbacks(); xbt_dynar_push(model_list, &surf_network_model); - xbt_cfg_set_string(_surf_cfg_set, "routing", "none"); - routing_model_create(sizeof(double), NULL); + routing_model_create(NULL); }