From 2e7e91648ac419086686910e4b8b124041e14edf Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 15 May 2025 21:25:00 +0200 Subject: feat(kernel/sched): fix overengineered and duplicate switch on ::Run method. Signed-off-by: Amlal El Mahrouss --- dev/kernel/src/UserProcessScheduler.cc | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) (limited to 'dev/kernel/src') diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 1a208bae..24869d63 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -495,25 +495,18 @@ SizeT UserProcessScheduler::Run() noexcept { this->CurrentProcess() = process; - // tell helper to find a core to schedule on, otherwise run on this core directly. - if (!UserProcessHelper::Switch(process.StackFrame, process.ProcessId)) { - if (process.ProcessId == this->CurrentProcess().Leak().ProcessId && - process.PTime > (Int32) AffinityKind::kStandard) { - if (process.PTime < process.RTime) { - if (process.RTime < (Int32) AffinityKind::kVeryHigh) - process.PTime = (Int32) AffinityKind::kLowUsage; - else if (process.RTime < (Int32) AffinityKind::kHigh) - process.PTime = (Int32) AffinityKind::kStandard; - else if (process.RTime < (Int32) AffinityKind::kStandard) - process.PTime = (Int32) AffinityKind::kHigh; - - process.PTime = static_cast(process.Affinity); - process.RTime = 0UL; - - } else { - ++process.RTime; - } - } + process.PTime = static_cast(process.Affinity); + + if (process.PTime < process.RTime) { + if (process.RTime < (Int32) AffinityKind::kVeryHigh) + process.PTime = (Int32) AffinityKind::kLowUsage; + else if (process.RTime < (Int32) AffinityKind::kHigh) + process.PTime = (Int32) AffinityKind::kStandard; + else if (process.RTime < (Int32) AffinityKind::kStandard) + process.PTime = (Int32) AffinityKind::kHigh; + process.RTime = 0UL; + } else { + ++process.RTime; } } else { kout << process.Name << " won't be scheduled to run...\r"; -- cgit v1.2.3