X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e526ad06508e0193155f0591b43d7d9e9e92f6c7..c0bda26f8216132898999052ea1fdbbe01fd2aa0:/src/surf/cpu_interface.cpp diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index faa4ab5ddc..554c8715ef 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -23,10 +23,9 @@ namespace surf { void CpuModel::updateActionsStateLazy(double now, double /*delta*/) { - while ((xbt_heap_size(getActionHeap()) > 0) - && (double_equals(xbt_heap_maxkey(getActionHeap()), now, sg_surf_precision))) { + while (not actionHeapIsEmpty() && double_equals(actionHeapTopDate(), now, sg_surf_precision)) { - CpuAction *action = static_cast(xbt_heap_pop(getActionHeap())); + CpuAction* action = static_cast(actionHeapPop()); XBT_CDEBUG(surf_kernel, "Something happened to action %p", action); if (TRACE_is_enabled()) { Cpu *cpu = static_cast(lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action->getVariable(), 0))); @@ -124,8 +123,9 @@ int Cpu::getNbPStates() void Cpu::setPState(int pstate_index) { xbt_assert(pstate_index <= static_cast(speedPerPstate_.size()), - "Invalid parameters for CPU %s (pstate %d > length of pstates %d)", getCname(), pstate_index, - static_cast(speedPerPstate_.size())); + "Invalid parameters for CPU %s (pstate %d > length of pstates %d). Please fix your platform file, or your " + "call to change the pstate.", + getCname(), pstate_index, static_cast(speedPerPstate_.size())); double new_peak_speed = speedPerPstate_[pstate_index]; pstate_ = pstate_index; @@ -190,21 +190,23 @@ void CpuAction::updateRemainingLazy(double now) xbt_assert(getStateSet() == getModel()->getRunningActionSet(), "You're updating an action that is not running."); xbt_assert(getPriority() > 0, "You're updating an action that seems suspended."); - double delta = now - lastUpdate_; + double delta = now - getLastUpdate(); - if (remains_ > 0) { - XBT_CDEBUG(surf_kernel, "Updating action(%p): remains was %f, last_update was: %f", this, remains_, lastUpdate_); - double_update(&(remains_), lastValue_ * delta, sg_maxmin_precision*sg_surf_precision); + if (getRemainsNoUpdate() > 0) { + XBT_CDEBUG(surf_kernel, "Updating action(%p): remains was %f, last_update was: %f", this, getRemainsNoUpdate(), + getLastUpdate()); + updateRemains(getLastValue() * delta); if (TRACE_is_enabled()) { Cpu *cpu = static_cast(lmm_constraint_id(lmm_get_cnst_from_var(getModel()->getMaxminSystem(), getVariable(), 0))); - TRACE_surf_host_set_utilization(cpu->getCname(), getCategory(), lastValue_, lastUpdate_, now - lastUpdate_); + TRACE_surf_host_set_utilization(cpu->getCname(), getCategory(), getLastValue(), getLastUpdate(), + now - getLastUpdate()); } - XBT_CDEBUG(surf_kernel, "Updating action(%p): remains is now %f", this, remains_); + XBT_CDEBUG(surf_kernel, "Updating action(%p): remains is now %f", this, getRemainsNoUpdate()); } - lastUpdate_ = now; - lastValue_ = lmm_variable_getvalue(getVariable()); + refreshLastUpdate(); + setLastValue(lmm_variable_getvalue(getVariable())); } simgrid::xbt::signal CpuAction::onStateChange;