Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move CPU models to kernel::resource too
[simgrid.git] / src / surf / cpu_ti.cpp
index 2ef2169..46872d2 100644 (file)
@@ -13,13 +13,14 @@ constexpr double EPSILON = 0.000000001;
 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;
@@ -284,22 +285,17 @@ int CpuTiProfile::binary_search(double* array, double a, int low, int high)
   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)
@@ -312,7 +308,7 @@ CpuTiModel::~CpuTiModel()
   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);
 }
@@ -444,7 +440,7 @@ void CpuTi::update_actions_finish_time(double now)
       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();
@@ -457,7 +453,7 @@ void CpuTi::update_actions_finish_time(double now)
       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;
 
@@ -517,7 +513,7 @@ void CpuTi::update_remaining_amount(double now)
       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 */
@@ -535,7 +531,7 @@ void CpuTi::update_remaining_amount(double now)
   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);
@@ -546,8 +542,7 @@ CpuAction *CpuTi::execution_start(double 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);
@@ -556,7 +551,7 @@ CpuAction *CpuTi::sleep(double duration)
   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);
 
@@ -613,8 +608,8 @@ void CpuTiAction::cancel()
 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);
   }
@@ -624,8 +619,8 @@ void CpuTiAction::suspend()
 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();
@@ -667,5 +662,6 @@ double CpuTiAction::get_remains()
   return get_remains_no_update();
 }
 
-}
-}
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid