Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[CR] Minor improvement.
[simgrid.git] / src / surf / network_cm02.cpp
index 5b1f916..3dc1bd7 100644 (file)
@@ -12,7 +12,6 @@
 #include "src/kernel/resource/profile/Event.hpp"
 #include "src/surf/network_wifi.hpp"
 #include "src/surf/surf_interface.hpp"
-#include "surf/surf.hpp"
 
 #include <algorithm>
 #include <numeric>
@@ -40,8 +39,9 @@ double sg_weight_S_parameter = 0.0; /* default value; can be set by model or fro
 void surf_network_model_init_LegrandVelho()
 {
   auto net_model = std::make_shared<simgrid::kernel::resource::NetworkCm02Model>("Network_LegrandVelho");
-  simgrid::kernel::EngineImpl::get_instance()->add_model(net_model);
-  simgrid::s4u::Engine::get_instance()->get_netzone_root()->get_impl()->set_network_model(net_model);
+  auto* engine   = simgrid::kernel::EngineImpl::get_instance();
+  engine->add_model(net_model);
+  engine->get_netzone_root()->set_network_model(net_model);
 
   simgrid::config::set_default<double>("network/latency-factor", 13.01);
   simgrid::config::set_default<double>("network/bandwidth-factor", 0.97);
@@ -66,8 +66,9 @@ void surf_network_model_init_CM02()
   simgrid::config::set_default<double>("network/weight-S", 0.0);
 
   auto net_model = std::make_shared<simgrid::kernel::resource::NetworkCm02Model>("Network_CM02");
-  simgrid::kernel::EngineImpl::get_instance()->add_model(net_model);
-  simgrid::s4u::Engine::get_instance()->get_netzone_root()->get_impl()->set_network_model(net_model);
+  auto* engine   = simgrid::kernel::EngineImpl::get_instance();
+  engine->add_model(net_model);
+  engine->get_netzone_root()->set_network_model(net_model);
 }
 
 namespace simgrid {
@@ -87,8 +88,8 @@ NetworkCm02Model::NetworkCm02Model(const std::string& name) : NetworkModel(name)
   }
 
   set_maxmin_system(new lmm::System(select));
-  loopback_ = create_link("__loopback__", std::vector<double>{config::get_value<double>("network/loopback-bw")});
-  loopback_->set_sharing_policy(s4u::Link::SharingPolicy::FATPIPE);
+  loopback_ = create_link("__loopback__", {config::get_value<double>("network/loopback-bw")});
+  loopback_->set_sharing_policy(s4u::Link::SharingPolicy::FATPIPE, {});
   loopback_->set_latency(config::get_value<double>("network/loopback-lat"));
   loopback_->seal();
 }
@@ -436,7 +437,6 @@ Action* NetworkCm02Model::communicate(s4u::Host* src, s4u::Host* dst, double siz
   comm_action_expand_constraints(src, dst, action, route, back_route);
   XBT_OUT();
 
-  simgrid::s4u::Link::on_communicate(*action);
   return action;
 }
 
@@ -462,12 +462,12 @@ void NetworkCm02Link::apply_event(kernel::profile::Event* triggered, double valu
     set_latency(value);
     tmgr_trace_event_unref(&latency_.event);
 
-  } else if (triggered == state_event_) {
+  } else if (triggered == get_state_event()) {
     if (value > 0)
       turn_on();
     else
       turn_off();
-    tmgr_trace_event_unref(&state_event_);
+    unref_state_event();
   } else {
     xbt_die("Unknown event!\n");
   }
@@ -478,6 +478,7 @@ void NetworkCm02Link::apply_event(kernel::profile::Event* triggered, double valu
 
 void NetworkCm02Link::set_bandwidth(double value)
 {
+  double old_peak = bandwidth_.peak;
   bandwidth_.peak = value;
 
   get_model()->get_maxmin_system()->update_constraint_bound(get_constraint(), (bandwidth_.peak * bandwidth_.scale));
@@ -485,7 +486,8 @@ void NetworkCm02Link::set_bandwidth(double value)
   LinkImpl::on_bandwidth_change();
 
   if (sg_weight_S_parameter > 0) {
-    double delta = sg_weight_S_parameter / value - sg_weight_S_parameter / (bandwidth_.peak * bandwidth_.scale);
+    double delta = sg_weight_S_parameter / (bandwidth_.peak * bandwidth_.scale) -
+                   sg_weight_S_parameter / (old_peak * bandwidth_.scale);
 
     const kernel::lmm::Element* elem     = nullptr;
     const kernel::lmm::Element* nextelem = nullptr;
@@ -524,9 +526,9 @@ void NetworkCm02Link::set_latency(double value)
           std::min(action->get_user_bound(), NetworkModel::cfg_tcp_gamma / (2.0 * action->lat_current_)));
 
       if (action->get_user_bound() < NetworkModel::cfg_tcp_gamma / (2.0 * action->lat_current_)) {
-        XBT_INFO("Flow is limited BYBANDWIDTH");
+        XBT_DEBUG("Flow is limited BYBANDWIDTH");
       } else {
-        XBT_INFO("Flow is limited BYLATENCY, latency of flow is %f", action->lat_current_);
+        XBT_DEBUG("Flow is limited BYLATENCY, latency of flow is %f", action->lat_current_);
       }
     }
     if (not action->is_suspended())