XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_ti, surf_cpu, "Logging specific to the SURF CPU TRACE INTEGRATION module");
namespace simgrid {
-namespace surf {
+namespace kernel {
+namespace resource {
/*********
* Trace *
*********/
-CpuTiProfile::CpuTiProfile(kernel::profile::Profile* profile)
+CpuTiProfile::CpuTiProfile(profile::Profile* profile)
{
double integral = 0;
double time = 0;
return low;
}
-}
-}
-
/*********
* Model *
*********/
-namespace simgrid {
-namespace surf {
void CpuTiModel::create_pm_vm_models()
{
xbt_assert(surf_cpu_model_pm == nullptr, "CPU model already initialized. This should not happen.");
xbt_assert(surf_cpu_model_vm == nullptr, "CPU model already initialized. This should not happen.");
- surf_cpu_model_pm = new simgrid::surf::CpuTiModel();
- surf_cpu_model_vm = new simgrid::surf::CpuTiModel();
+ surf_cpu_model_pm = new simgrid::kernel::resource::CpuTiModel();
+ surf_cpu_model_vm = new simgrid::kernel::resource::CpuTiModel();
}
CpuTiModel::CpuTiModel() : CpuModel(Model::UpdateAlgo::FULL)
surf_cpu_model_pm = nullptr;
}
-Cpu* CpuTiModel::create_cpu(simgrid::s4u::Host* host, const std::vector<double>& speed_per_pstate, int core)
+kernel::resource::Cpu* CpuTiModel::create_cpu(s4u::Host* host, const std::vector<double>& speed_per_pstate, int core)
{
return new CpuTi(this, host, speed_per_pstate, core);
}
continue;
/* action suspended, skip it */
- if (action.suspended_ != kernel::resource::Action::SuspendStates::not_suspended)
+ if (not action.is_running())
continue;
sum_priority_ += 1.0 / action.get_priority();
continue;
/* verify if the action is really running on cpu */
- if (action.suspended_ == kernel::resource::Action::SuspendStates::not_suspended && action.get_priority() > 0) {
+ if (action.is_running() && action.get_priority() > 0) {
/* total area needed to finish the action. Used in trace integration */
double total_area = (action.get_remains() * sum_priority_ * action.get_priority()) / speed_.peak;
continue;
/* action suspended, skip it */
- if (action.suspended_ != kernel::resource::Action::SuspendStates::not_suspended)
+ if (not action.is_running())
continue;
/* action don't need update */
last_update_ = now;
}
-CpuAction *CpuTi::execution_start(double size)
+kernel::resource::CpuAction* CpuTi::execution_start(double size)
{
XBT_IN("(%s,%g)", get_cname(), size);
CpuTiAction* action = new CpuTiAction(this, size);
return action;
}
-
-CpuAction *CpuTi::sleep(double duration)
+kernel::resource::CpuAction* CpuTi::sleep(double duration)
{
if (duration > 0)
duration = std::max(duration, sg_surf_precision);
CpuTiAction* action = new CpuTiAction(this, 1.0);
action->set_max_duration(duration);
- action->suspended_ = kernel::resource::Action::SuspendStates::sleeping;
+ action->set_suspend_state(kernel::resource::Action::SuspendStates::SLEEPING);
if (duration == NO_MAX_DURATION)
action->set_state(simgrid::kernel::resource::Action::State::IGNORED);
void CpuTiAction::suspend()
{
XBT_IN("(%p)", this);
- if (suspended_ != Action::SuspendStates::sleeping) {
- suspended_ = Action::SuspendStates::suspended;
+ if (is_running()) {
+ set_suspend_state(Action::SuspendStates::SUSPENDED);
get_model()->get_action_heap().remove(this);
cpu_->set_modified(true);
}
void CpuTiAction::resume()
{
XBT_IN("(%p)", this);
- if (suspended_ != Action::SuspendStates::sleeping) {
- suspended_ = Action::SuspendStates::not_suspended;
+ if (is_suspended()) {
+ set_suspend_state(Action::SuspendStates::RUNNING);
cpu_->set_modified(true);
}
XBT_OUT();
return get_remains_no_update();
}
-}
-}
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid