diff --git a/src/system/kernel/scheduler/scheduler_cpu.cpp b/src/system/kernel/scheduler/scheduler_cpu.cpp index f2030759f9..ef6c9bc75b 100644 --- a/src/system/kernel/scheduler/scheduler_cpu.cpp +++ b/src/system/kernel/scheduler/scheduler_cpu.cpp @@ -242,6 +242,9 @@ CPUEntry::TrackActivity(ThreadData* oldThreadData, ThreadData* nextThreadData) cpuEntry->active_time += active; locker.Unlock(); + fMeasureActiveTime += active; + fCore->IncreaseActiveTime(active); + oldThreadData->UpdateActivity(active); } @@ -268,7 +271,7 @@ CPUEntry::_RequestPerformanceLevel(ThreadData* threadData) SCHEDULER_ENTER_FUNCTION(); int32 load = std::max(threadData->GetLoad(), fCore->GetLoad()); - load = std::min(std::max(load, int32(0)), kMaxLoad); + ASSERT(load >= 0 && load <= kMaxLoad); if (load < kTargetLoad) { int32 delta = kTargetLoad - load; diff --git a/src/system/kernel/scheduler/scheduler_cpu.h b/src/system/kernel/scheduler/scheduler_cpu.h index 859627972b..9115f67fbd 100644 --- a/src/system/kernel/scheduler/scheduler_cpu.h +++ b/src/system/kernel/scheduler/scheduler_cpu.h @@ -69,9 +69,6 @@ public: void UpdatePriority(int32 priority); - inline void IncreaseActiveTime( - bigtime_t activeTime); - inline int32 GetLoad() const { return fLoad; } void ComputeLoad(); @@ -307,14 +304,6 @@ CPUEntry::UnlockScheduler() } -inline void -CPUEntry::IncreaseActiveTime(bigtime_t activeTime) -{ - SCHEDULER_ENTER_FUNCTION(); - fMeasureActiveTime += activeTime; -} - - /* static */ inline CPUEntry* CPUEntry::GetCPU(int32 cpu) { diff --git a/src/system/kernel/scheduler/scheduler_thread.h b/src/system/kernel/scheduler/scheduler_thread.h index 3fb2db65e2..38434e4122 100644 --- a/src/system/kernel/scheduler/scheduler_thread.h +++ b/src/system/kernel/scheduler/scheduler_thread.h @@ -300,10 +300,7 @@ inline void ThreadData::UpdateActivity(bigtime_t active) { SCHEDULER_ENTER_FUNCTION(); - fMeasureActiveTime += active; - CPUEntry::GetCPU(smp_get_current_cpu())->IncreaseActiveTime(active); - fCore->IncreaseActiveTime(active); }