Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / src / plugins / host_dvfs.cpp
index 0404ae0..0a5ac58 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2023. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 #include "src/internal_config.h" // HAVE_SMPI
 #include "src/kernel/activity/CommImpl.hpp"
 #include "src/kernel/resource/NetworkModel.hpp"
+#include "src/simgrid/module.hpp"
 #if HAVE_SMPI
 #include "src/smpi/include/smpi_request.hpp"
 #include "src/smpi/plugins/ampi/ampi.hpp"
 #endif
 
 #include <boost/algorithm/string.hpp>
+#include <string_view>
 
 SIMGRID_REGISTER_PLUGIN(host_dvfs, "Dvfs support", &sg_host_dvfs_plugin_init)
 
@@ -43,7 +45,7 @@ static simgrid::config::Flag<std::string> cfg_governor("plugin/dvfs/governor",
                                                              {"performance", "TODO: Doc"}, {"powersave", "TODO: Doc"},
                                                        }),
 
-                                                       [](const std::string& val) {
+                                                       [](std::string_view val) {
                                                          if (val != "performance")
                                                            sg_host_dvfs_plugin_init();
                                                        });
@@ -57,18 +59,9 @@ static simgrid::config::Flag<int>
     cfg_max_pstate("plugin/dvfs/max-pstate",
                    "Which pstate is the maximum (and hence slowest) pstate for this governor?", MAX_PSTATE_NOT_LIMITED);
 
-/** @addtogroup SURF_plugin_load
-
-  This plugin makes it very simple for users to obtain the current load for each host.
-
-*/
-
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(host_dvfs, kernel, "Logging specific to the HostDvfs plugin");
 
-namespace simgrid {
-namespace plugin {
-
-namespace dvfs {
+namespace simgrid::plugin::dvfs {
 
 /**
  *  Add this to your host tag:
@@ -309,7 +302,7 @@ 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
     kernel::activity::CommImpl::on_start.connect([this](const kernel::activity::CommImpl& comm) {
-      const auto* act = static_cast<kernel::resource::NetworkAction*>(comm.surf_action_);
+      const auto* act = static_cast<kernel::resource::NetworkAction*>(comm.model_action_);
       if ((get_host() == &act->get_src() || get_host() == &act->get_dst()) && iteration_running) {
         post_task();
       }
@@ -360,9 +353,7 @@ public:
   void update() override {}
 };
 #endif
-} // namespace dvfs
-} // namespace plugin
-} // namespace simgrid
+} // namespace simgrid::plugin::dvfs
 
 /* **************************** events  callback *************************** */
 static void on_host_added(simgrid::s4u::Host& host)
@@ -370,7 +361,7 @@ static void on_host_added(simgrid::s4u::Host& host)
   if (dynamic_cast<simgrid::s4u::VirtualMachine*>(&host)) // Ignore virtual machines
     return;
 
-  std::string name              = std::string("dvfs-daemon-") + host.get_cname();
+  std::string name              = "dvfs-daemon-" + host.get_name();
   simgrid::s4u::ActorPtr daemon = simgrid::s4u::Actor::create(name.c_str(), &host, []() {
     /**
      * This lambda function is the function the actor (daemon) will execute
@@ -383,7 +374,7 @@ static void on_host_added(simgrid::s4u::Host& host)
 
     std::string dvfs_governor;
     if (const char* host_conf = daemon_proc->get_host()->get_property("plugin/dvfs/governor")) {
-      dvfs_governor = std::string(host_conf);
+      dvfs_governor = host_conf;
       boost::algorithm::to_lower(dvfs_governor);
     } else {
       dvfs_governor = cfg_governor;