diff options
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalKernelMain.cc | 9 | ||||
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 5 |
2 files changed, 6 insertions, 8 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc index a535b4ac..722c9cb5 100644 --- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc @@ -120,17 +120,16 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { Kernel::HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); #ifdef __FSKIT_INCLUDES_HEFS__ - if (!Kernel::HeFS::fs_init_hefs()) { - // Fallback to NeFS, if HeFS doesn't work here. - Kernel::NeFS::fs_init_nefs(); + if (Kernel::HeFS::fs_init_hefs()) { + goto hal_spin_kernel; } -#elif defined(__FSKIT_INCLUDES_NEFS__) +#endif if (!Kernel::NeFS::fs_init_nefs()) { kout << "NeFS cannot be formated on the disk. Aborting\r"; dbg_break_point(); } -#endif +hal_spin_kernel: while (YES) ; } diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 54f8ca77..1a208bae 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -495,9 +495,6 @@ SizeT UserProcessScheduler::Run() noexcept { this->CurrentProcess() = process; - process.PTime = static_cast<Int32>(process.Affinity); - process.RTime = 0UL; - // 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 && @@ -510,7 +507,9 @@ SizeT UserProcessScheduler::Run() noexcept { else if (process.RTime < (Int32) AffinityKind::kStandard) process.PTime = (Int32) AffinityKind::kHigh; + process.PTime = static_cast<Int32>(process.Affinity); process.RTime = 0UL; + } else { ++process.RTime; } |
