ladybird/Kernel
Tom cdbd878a14 Kernel: Fix APIC timer calibration to be more accurate
We were calibrating it to 260 instead of 250 ticks per second (being
off by one for the 1/10th second calibration time), resulting in
ticks of only ~3.6 ms instead of ~4ms. This gets us closer to ~4ms,
but because the APIC isn't nearly as precise as e.g. HPET, it will
only be a best effort. Then, use the higher precision reference
timer to more accurately calculate how many ticks we actually get
each second.

Also the frequency calculation was off, causing a "Frequency too slow"
error with VMware.

Fixes some problems observed in #5539
2021-03-01 11:11:09 +01:00
..
ACPI Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
API Kernel: Take some baby steps towards x86_64 2021-02-25 16:27:12 +01:00
Arch Kernel: Fix KUBSAN warnings due to unaligned APIC variables 2021-02-28 15:27:53 +01:00
Devices Kernel: Fix scrolling up in VMware 2021-03-01 11:10:10 +01:00
FileSystem Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Heap Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Interrupts Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
PCI Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Storage Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Syscalls Kernel: Don't disable interrupts while exiting a thread or process 2021-02-25 19:36:36 +01:00
Tasks Kernel: Ignore unobserved BlockResult from Thread::Sleep 2021-02-15 08:28:57 +01:00
Time Kernel: Fix APIC timer calibration to be more accurate 2021-03-01 11:11:09 +01:00
TTY LibVT: Make VT::Line use a Vector for storage 2021-02-27 09:23:06 +01:00
VM Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
.gitignore Meta: Expect sync-local.sh script at repository root 2021-01-30 09:18:46 +01:00
AddressSanitizer.cpp Kernel: Initial integration of Kernel Address Sanitizer (KASAN) 2021-02-15 11:41:53 +01:00
AddressSanitizer.h Kernel: Initial integration of Kernel Address Sanitizer (KASAN) 2021-02-15 11:41:53 +01:00
Assertions.h Everywhere: Remove unused RELEASE_ASSERT macro 2021-02-23 21:11:53 +01:00
CMakeLists.txt Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
CMOS.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
CMOS.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
CommandLine.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Kernel: Slap UNMAP_AFTER_INIT on a bunch more functions 2021-02-19 21:42:18 +01:00
Console.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
CoreDump.cpp Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
CoreDump.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Debug.h.in Kernel: Add NE2000 network card driver 2021-02-05 09:35:02 +01:00
DMI.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
DMI.h Kernel: Set file size for smbios_entry_point and DMI blobs in ProcFS 2021-02-01 17:13:23 +01:00
DoubleBuffer.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
DoubleBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Forward.h Kernel: Factor address space management out of the Process class 2021-02-08 18:27:28 +01:00
FutexQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
FutexQueue.h Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
init.cpp Kernel: Add self-test boot mode, an alias for text mode 2021-02-28 18:19:37 +01:00
IO.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
KBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
KBufferBuilder.cpp Kernel: Assert if rounding-up-to-page-size would wrap around to 0 2021-02-14 10:01:50 +01:00
KBufferBuilder.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
kprintf.cpp Kernel: Don't take debug logging lock in sprintf() 2021-02-20 17:21:53 +01:00
KResult.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
kstdio.h Kernel: Remove kprintf() 2021-02-17 16:33:43 +01:00
KSyms.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
KSyms.h Kernel: Take some baby steps towards x86_64 2021-02-25 16:27:12 +01:00
linker.ld Kernel: Add .unmap_after_init section for code we don't need after init 2021-02-19 20:23:05 +01:00
Lock.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Lock.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
LockMode.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Multiboot.h Kernel: Parse boot modules from Multiboot specification 2021-01-22 22:17:39 +01:00
Panic.cpp Kernel: Add a PANIC() function 2021-02-14 09:36:58 +01:00
Panic.h Kernel: Add a PANIC() function 2021-02-14 09:36:58 +01:00
PerformanceEventBuffer.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
PerformanceEventBuffer.h Kernel: Prune uninteresting kernel frames from profiling samples 2021-01-17 14:36:53 +01:00
PhysicalAddress.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Process.cpp Kernel: Detach the traced process on process exit 2021-02-26 14:49:39 +01:00
Process.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
ProcessGroup.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Random.cpp Kernel: Fix APIC timer calibration to be more accurate 2021-03-01 11:11:09 +01:00
Random.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
RTC.cpp Kernel: Don't assert if RTC believes we're in the past 2021-02-11 20:58:39 +01:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Scheduler.h Kernel: Remove ancient unused Scheduler::beep() declaration 2021-02-07 20:45:09 +01:00
SpinLock.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StdLib.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
StdLib.h Kernel: Mark more StdLib functions as [[nodiscard]] 2021-02-15 09:34:52 +01:00
Syscall.cpp Kernel: Don't disable interrupts while exiting a thread or process 2021-02-25 19:36:36 +01:00
Thread.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +01:00
Thread.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ThreadBlockers.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ThreadTracer.cpp Kernel: Reorganize ptrace implementation a bit 2021-02-08 19:34:41 +01:00
ThreadTracer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TimerQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TimerQueue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
UBSanitizer.cpp Kernel: Improve KUBSAN logging for "type mismatch" errors 2021-02-24 14:27:06 +01:00
UBSanitizer.h KUBSAN: Add nearly all missing -fsanitize handlers (#5254) 2021-02-11 20:58:01 +01:00
UnixTypes.h Kernel+LibC: Add the _SC_GETPW_R_SIZE_MAX sysconf enum 2021-02-15 17:32:56 +01:00
UnveilNode.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
VirtualAddress.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
WaitQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
WaitQueue.h Kernel: Add WaitQueue::wait_forever and it use it for all infinite waits. 2021-02-15 08:28:57 +01:00