X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/84402e8e2ee2a2d0bef25fdceb0a263ed8b471f6..e080adacaf1ba847ad467f5b8d21da385636ed3c:/src/plugins/host_dvfs.cpp diff --git a/src/plugins/host_dvfs.cpp b/src/plugins/host_dvfs.cpp index 2232332b1e..dbadd855f9 100644 --- a/src/plugins/host_dvfs.cpp +++ b/src/plugins/host_dvfs.cpp @@ -304,12 +304,11 @@ public: }); // FIXME I think that this fires at the same time for all hosts, so when the src sends something, // the dst will be notified even though it didn't even arrive at the recv yet - simgrid::s4u::Link::on_communicate.connect( - [this](const kernel::resource::NetworkAction&, const s4u::Host* src, const s4u::Host* dst) { - if ((get_host() == src || get_host() == dst) && iteration_running) { - post_task(); - } - }); + simgrid::s4u::Link::on_communicate.connect([this](const kernel::resource::NetworkAction& act) { + if ((get_host() == &act.get_src() || get_host() == &act.get_dst()) && iteration_running) { + post_task(); + } + }); } std::string get_name() const override { return "Adagio"; } @@ -387,35 +386,29 @@ static void on_host_added(simgrid::s4u::Host& host) boost::algorithm::to_lower(dvfs_governor); } - auto governor = [&dvfs_governor, &daemon_proc]() { + auto governor = [&dvfs_governor, &daemon_proc]() -> std::unique_ptr { if (dvfs_governor == "conservative") { - return std::unique_ptr( - new simgrid::plugin::dvfs::Conservative(daemon_proc->get_host())); + return std::make_unique(daemon_proc->get_host()); } else if (dvfs_governor == "ondemand") { - return std::unique_ptr( - new simgrid::plugin::dvfs::OnDemand(daemon_proc->get_host())); + return std::make_unique(daemon_proc->get_host()); } #if HAVE_SMPI else if (dvfs_governor == "adagio") { - return std::unique_ptr( - new simgrid::plugin::dvfs::Adagio(daemon_proc->get_host())); + return std::make_unique(daemon_proc->get_host()); } #endif else if (dvfs_governor == "performance") { - return std::unique_ptr( - new simgrid::plugin::dvfs::Performance(daemon_proc->get_host())); + return std::make_unique(daemon_proc->get_host()); } else if (dvfs_governor == "powersave") { - return std::unique_ptr( - new simgrid::plugin::dvfs::Powersave(daemon_proc->get_host())); + return std::make_unique(daemon_proc->get_host()); } else { XBT_CRITICAL("No governor specified for host %s, falling back to Performance", daemon_proc->get_host()->get_cname()); - return std::unique_ptr( - new simgrid::plugin::dvfs::Performance(daemon_proc->get_host())); + return std::make_unique(daemon_proc->get_host()); } }(); - while (1) { + while (true) { // Sleep *before* updating; important for startup (i.e., t = 0). // In the beginning, we want to go with the pstates specified in the platform file // (so we sleep first)