Kernel: Allow parallel LAPIC timer initialization with HPET

HPET supports reading LAPIC counter without locks, so it can be done in
parallel. This makes booting much faster. Previously initializing every
timer took 100 ms, so 16 CPUs took total of 1.6 seconds. This allows
doing it all in 100 ms.
This commit is contained in:
2024-09-19 14:41:59 +03:00
parent 8e08046519
commit a489be0e05
5 changed files with 27 additions and 13 deletions

View File

@@ -69,6 +69,11 @@ namespace Kernel
return m_timer->time_since_boot();
}
bool SystemTimer::pre_scheduler_sleep_needs_lock() const
{
return m_timer->pre_scheduler_sleep_needs_lock();
}
void SystemTimer::pre_scheduler_sleep_ns(uint64_t ns)
{
return m_timer->pre_scheduler_sleep_ns(ns);