X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4e68c6fc1ff039dd2cea2688981f4c19919874d4..b2852b7c61948f495d7437ffaa7fd9aced12849c:/src/kernel/resource/CpuImpl.cpp diff --git a/src/kernel/resource/CpuImpl.cpp b/src/kernel/resource/CpuImpl.cpp index 77aa7a1f02..acd7aa4a89 100644 --- a/src/kernel/resource/CpuImpl.cpp +++ b/src/kernel/resource/CpuImpl.cpp @@ -4,9 +4,9 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "src/kernel/resource/CpuImpl.hpp" -#include "simgrid/math_utils.h" #include "src/kernel/resource/models/cpu_ti.hpp" #include "src/kernel/resource/profile/Profile.hpp" +#include "src/simgrid/math_utils.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(res_cpu, ker_resource, "CPU resource, fueling execution activites"); @@ -66,9 +66,9 @@ CpuImpl* CpuImpl::set_pstate(unsigned long pstate_index) { xbt_assert( pstate_index < speed_per_pstate_.size(), - "Invalid parameters for CPU %s (pstate %lu >= length of pstates %d). Please fix your platform file, or your " + "Invalid parameters for CPU %s (pstate %lu >= length of pstates %zu). Please fix your platform file, or your " "call to change the pstate.", - get_cname(), pstate_index, static_cast(speed_per_pstate_.size())); + get_cname(), pstate_index, speed_per_pstate_.size()); double new_peak_speed = speed_per_pstate_[pstate_index]; pstate_ = pstate_index; @@ -89,14 +89,15 @@ CpuImpl* CpuImpl::set_pstate_speed(const std::vector& speed_per_state) double CpuImpl::get_pstate_peak_speed(unsigned long pstate_index) const { - xbt_assert((pstate_index <= speed_per_pstate_.size()), "Invalid parameters (pstate index out of bounds)"); - + xbt_assert(pstate_index < speed_per_pstate_.size(), "Invalid parameters (pstate index %lu out of bounds %zu)", + pstate_index, speed_per_pstate_.size()); return speed_per_pstate_[pstate_index]; } void CpuImpl::on_speed_change() { s4u::Host::on_speed_change(*piface_); + piface_->on_this_speed_change(*piface_); } CpuImpl* CpuImpl::set_core_count(int core_count) @@ -151,6 +152,14 @@ void CpuImpl::seal() Resource::seal(); } +void CpuImpl::turn_off() +{ + if (is_on()) { + Resource::turn_off(); + cancel_actions(); + } +} + /********** * Action * **********/ @@ -175,27 +184,11 @@ void CpuAction::update_remains_lazy(double now) set_last_value(get_rate()); } -xbt::signal CpuAction::on_state_change; - -void CpuAction::suspend() -{ - Action::State previous = get_state(); - on_state_change(*this, previous); - Action::suspend(); -} - -void CpuAction::resume() -{ - Action::State previous = get_state(); - on_state_change(*this, previous); - Action::resume(); -} - void CpuAction::set_state(Action::State state) { Action::State previous = get_state(); Action::set_state(state); - on_state_change(*this, previous); + s4u::Host::on_exec_state_change(*this, previous); } /** @brief returns a list of all CPUs that this action is using */