X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0e6e9a9dade4d5272159ab2a5cfd7496a62eaa18..60b4fdc04b505bd0b4d2a58073407d9d02054dc7:/src/plugins/host_energy.cpp diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index 5f6a0e4e50..aab32cbff8 100644 --- a/src/plugins/host_energy.cpp +++ b/src/plugins/host_energy.cpp @@ -441,7 +441,7 @@ static void on_action_state_change(simgrid::kernel::resource::CpuAction const& a * (because the user changed the pstate, or because of external trace events) ("onSpeedChange") */ static void on_host_change(simgrid::s4u::Host const& h) { - auto* host = &h; + const auto* host = &h; if (const auto* vm = dynamic_cast(host)) // Take the PM of virtual machines host = vm->get_pm(); @@ -475,8 +475,7 @@ static void on_simulation_end() static void on_activity_suspend_resume(simgrid::s4u::Activity const& activity) { - if (auto* action = dynamic_cast(activity.get_impl()->model_action_); - action != nullptr) + if (const auto* action = dynamic_cast(activity.get_impl()->model_action_)) on_action_state_change(*action, /*ignored*/ action->get_state()); } @@ -494,7 +493,7 @@ void sg_host_energy_plugin_init() HostEnergy::EXTENSION_ID = simgrid::s4u::Host::extension_create(); simgrid::s4u::Host::on_creation_cb(&on_creation); - simgrid::s4u::Host::on_state_change_cb(&on_host_change); + simgrid::s4u::Host::on_onoff_cb(&on_host_change); simgrid::s4u::Host::on_speed_change_cb(&on_host_change); simgrid::s4u::Host::on_destruction_cb(&on_host_destruction); simgrid::s4u::Host::on_exec_state_change_cb(&on_action_state_change); @@ -505,7 +504,7 @@ void sg_host_energy_plugin_init() simgrid::s4u::Engine::on_simulation_end_cb(&on_simulation_end); // We may only have one actor on a node. If that actor executes something like // compute -> recv -> compute - // the recv operation will not trigger a "CpuAction::on_state_change". This means + // the recv operation will not trigger a "Host::on_exec_state_change_cb". This means // that the next trigger would be the 2nd compute, hence ignoring the idle time // during the recv call. By updating at the beginning of a compute, we can // fix that. (If the cpu is not idle, this is not required.) @@ -514,6 +513,7 @@ void sg_host_energy_plugin_init() simgrid::s4u::Host* host = activity.get_host(); if (const auto* vm = dynamic_cast(host)) host = vm->get_pm(); + xbt_assert(host != nullptr); host->extension()->update(); } }); @@ -554,7 +554,7 @@ static void ensure_plugin_inited() double sg_host_get_consumed_energy(const_sg_host_t host) { ensure_plugin_inited(); - auto host_energy = host->extension(); + auto* host_energy = host->extension(); xbt_assert(host_energy->has_pstate_power_values(), "No power range properties specified for host %s", host->get_cname()); return host_energy->get_consumed_energy(); @@ -608,7 +608,7 @@ double sg_host_get_power_range_slope_at(const_sg_host_t host, int pstate) double sg_host_get_current_consumption(const_sg_host_t host) { ensure_plugin_inited(); - auto host_energy = host->extension(); + auto* host_energy = host->extension(); xbt_assert(host_energy->has_pstate_power_values(), "No power range properties specified for host %s", host->get_cname()); return host_energy->get_current_watts_value();