ladybird/Kernel
Tom b02d33bd63 Kernel: Fix some flaws that caused crashes or hangs during boot
We need to halt the BSP briefly until all APs are ready for the
first context switch, but we can't hold the same spinlock by all
of them while doing so. So, while the APs are waiting on each other
they need to release the scheduler lock, and then once signaled
re-acquire it. Should solve some timing dependent hangs or crashes,
most easily observed using qemu with kvm disabled.
2020-07-09 23:24:55 +02:00
..
ACPI Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
API Kernel: Move headers intended for userspace use into Kernel/API/ 2020-07-04 17:22:23 +02:00
Arch Kernel: Fix some flaws that caused crashes or hangs during boot 2020-07-09 23:24:55 +02:00
Devices Kernel: Require a reason to be passed to Thread::wait_on 2020-07-06 10:00:24 +02:00
FileSystem Kernel: Protect Inode list with SpinLock (#2748) 2020-07-09 21:51:58 +02:00
Heap Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
Interrupts Kernel: Fix some flaws that caused crashes or hangs during boot 2020-07-09 23:24:55 +02:00
Modules Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Net Kernel: Fix checking BlockResult 2020-07-07 15:46:58 +02:00
PCI Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
Tasks Kernel: Require a reason to be passed to Thread::wait_on 2020-07-06 10:00:24 +02:00
Time Kernel: Use map_typed() in HPET code and add a register access helper 2020-06-21 00:58:55 +02:00
TTY Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
VM Kernel: Aggregate TLB flush requests for Regions for SMP 2020-07-06 22:39:06 +02:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: List all CPUs in /proc/cpuinfo 2020-07-01 12:07:01 +02:00
CMakeLists.txt Kernel: Add Plan9FS :^) 2020-07-05 12:26:27 +02: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 Kernel: Remove CommandLine::get() in favor of lookup() 2020-04-18 14:22:42 +02:00
CommandLine.h Kernel: Remove CommandLine::get() in favor of lookup() 2020-04-18 14:22:42 +02:00
Console.cpp Kernel: Protect Console with SpinLock 2020-07-01 12:07:01 +02:00
Console.h Kernel: Port VirtualConsole to LibVT :^) 2020-05-27 11:19:38 +02:00
DoubleBuffer.cpp AK: Reduce header dependency graph of String.h 2020-03-23 13:48:44 +01:00
DoubleBuffer.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Forward.h Kernel: Implement software context switching and Processor structure 2020-07-01 12:07:01 +02:00
init.cpp Kernel: Fix some flaws that caused crashes or hangs during boot 2020-07-09 23:24:55 +02:00
IO.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
KBuffer.h AK: Reduce header dependency graph of String.h 2020-03-23 13:48:44 +01:00
KBufferBuilder.cpp Kernel: Fix KBufferBuilder::append() 2020-07-05 12:26:27 +02:00
KBufferBuilder.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
kprintf.cpp Kernel: Allow recursion when writing to the debug log 2020-07-03 19:32:34 +02:00
KResult.h Kernel: Always inline some KResult / KResultOr<> methods 2020-06-02 21:49:47 +02:00
kstdio.h Kernel: Remove awkward "#define printf dbgprintf" 2020-05-16 12:03:25 +02:00
KSyms.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Lock.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
Lock.h AK: Add ALWAYS_INLINE, NEVER_INLINE and FLATTEN macros 2020-04-30 11:43:25 +02: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 Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
PerformanceEventBuffer.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
PerformanceEventBuffer.h AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*) 2020-03-08 13:06:51 +01:00
PhysicalAddress.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
Process.cpp Kernel: Fix checking BlockResult 2020-07-07 15:46:58 +02:00
Process.h Kernel+LibELF: Expose ELF Auxiliary Vector to Userspace 2020-07-07 10:38:54 +02:00
Profiling.cpp LibELF: Move ELF classes into namespace ELF 2020-04-11 22:41:05 +02:00
Profiling.h Kernel: Bump the max stack frame count in sample profiles to 50 2020-04-12 11:00:38 +02:00
Ptrace.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
Ptrace.h Kernel: Move headers intended for userspace use into Kernel/API/ 2020-07-04 17:22:23 +02:00
Random.cpp Kernel: Require a reason to be passed to Thread::wait_on 2020-07-06 10:00:24 +02:00
Random.h Kernel: Make Random work on CPUs without rdrand 2020-06-27 19:40:33 +02:00
RTC.cpp Kernel: Fix awkward RTC log message at boot 2020-04-08 17:19:46 +02:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
Scheduler.h Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
SharedBuffer.cpp AK: Make Vector::unstable_remove() return the removed value 2020-07-05 12:26:27 +02:00
SharedBuffer.h Kernel: Tidy up SharedBuffer interface 2020-05-16 09:44:00 +02:00
SpinLock.h Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
StdLib.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
StdLib.h Kernel: Dont't static_assert that size_t is 32-bit :^) 2020-05-23 15:25:43 +02:00
Syscall.cpp Kernel: Move headers intended for userspace use into Kernel/API/ 2020-07-04 17:22:23 +02:00
Thread.cpp Kernel: Fix checking BlockResult 2020-07-07 15:46:58 +02:00
Thread.h Kernel: Fix checking BlockResult 2020-07-07 15:46:58 +02:00
ThreadTracer.cpp ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
ThreadTracer.h Debugger: Add DebugSession 2020-04-13 00:53:22 +02:00
TimerQueue.cpp Kernel: Update TimerQueue next due timer only when necessary 2020-04-27 11:24:21 +02:00
TimerQueue.h Kernel: Expose timers via a TimerId type 2020-04-27 11:14:41 +02:00
UnixTypes.h Kernel: Change the value of SO_KEEPALIVE to reflect LibC's constant 2020-07-04 10:49:36 +02:00
VirtualAddress.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
WaitQueue.cpp Kernel: Enhance WaitQueue to remember pending wakes 2020-07-06 10:00:24 +02:00
WaitQueue.h Kernel: Enhance WaitQueue to remember pending wakes 2020-07-06 10:00:24 +02:00