ladybird/Kernel
Brian Gianforcaro 9c38475608 Kernel: Add the ability to verify we don't kmalloc under spinlock.
Ideally we would never allocate under a spinlock, as it has many
performance and potentially functionality (deadlock) pitfalls.

We violate that rule in many places today, but we need a tool to track
them all down and fix them. This change introduces a new macro option
named `KMALLOC_VERIFY_NO_SPINLOCK_HELD` which can catch these
situations at runtime via an assert.
2021-05-14 13:28:21 +02:00
..
ACPI Kernel/ACPI: Map two pages when reading the FADT 2021-05-08 19:15:54 +02:00
API Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
Arch Kernel: Add Processor::is_bootstrap_processor() function, and use it. (#6871) 2021-05-05 18:48:26 +02:00
Devices Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
FileSystem Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
Heap Kernel: Add the ability to verify we don't kmalloc under spinlock. 2021-05-14 13:28:21 +02:00
Interrupts Kernel: Add Processor::is_bootstrap_processor() function, and use it. (#6871) 2021-05-05 18:48:26 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel: Avoid unnecessary time under lock in TCPSocket::create 2021-05-14 11:32:50 +02:00
PCI Everywhere: Turn #if *_DEBUG into dbgln_if/if constexpr 2021-05-01 21:25:06 +02:00
Storage Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
Syscalls Kernel: Use a separate timer for profiling the system 2021-05-14 00:35:57 +02:00
Tasks Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Time Kernel: Use a separate timer for profiling the system 2021-05-14 00:35:57 +02:00
TTY Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
VirtIO Kernel: Move VirtIO code away from using a scatter gather list 2021-05-13 10:00:42 +02:00
VM Kernel: Move VirtIO code away from using a scatter gather list 2021-05-13 10:00:42 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMakeLists.txt CMake: Fix message levels for error conditions during configuration 2021-05-13 18:52:48 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Console.cpp Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CoreDump.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
CoreDump.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Debug.h.in Kernel: Add the ability to verify we don't kmalloc under spinlock. 2021-05-14 13:28:21 +02:00
DMI.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DMI.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DoubleBuffer.cpp Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +02:00
DoubleBuffer.h Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +02:00
Forward.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FutexQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
FutexQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
init.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
IO.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KBuffer.h Kernel: Make KBuffer::try_create_with* APIs OOM safe 2021-05-13 16:21:53 +02:00
KBufferBuilder.cpp Kernel: Replace make<T>() with adopt_own_if_nonnull() in KBufferBuilder 2021-05-13 16:21:53 +02:00
KBufferBuilder.h Kernel: Avoid allocations in KBufferBuilder::appendff 2021-05-13 08:27:42 +02:00
kprintf.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KResult.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
kstdio.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KSyms.cpp Kernel: Check kernel symbol's name length matches searched name 2021-04-28 22:14:32 +02:00
KSyms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
linker.ld Kernel: Define a KERNEL_VIRTUAL_BASE in the linker script 2021-03-04 18:25:01 +01:00
Lock.cpp Kernel: Utilize AK::SourceLocation for LOCK_DEBUG instrumentation. 2021-04-25 09:38:27 +02:00
Lock.h Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
LockMode.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
PerformanceEventBuffer.cpp Kernel: Correctly set the lost_samples field for the first sample 2021-05-14 00:46:10 +02:00
PerformanceEventBuffer.h Kernel+Profiler: Track lost time between profiler timer ticks 2021-05-14 00:35:57 +02:00
PerformanceManager.h Kernel+Profiler: Track lost time between profiler timer ticks 2021-05-14 00:35:57 +02:00
PhysicalAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Process.cpp Kernel: Make Process::start_tracing_from API OOM safe 2021-05-13 16:21:53 +02:00
Process.h Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
ProcessGroup.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
ProcessGroup.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Random.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
Random.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Scheduler.cpp Kernel: Use a separate timer for profiling the system 2021-05-14 00:35:57 +02:00
Scheduler.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
SpinLock.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StdLib.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
StdLib.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Syscall.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
Thread.cpp Kernel: Make Thread::try_create API OOM safe 2021-05-13 08:29:01 +02:00
Thread.h Kernel: Remove shadowing member variable from FileDescriptionBlocker 2021-05-05 18:44:40 +02:00
ThreadBlockers.cpp Kernel: Modify TimeManagement::current_time(..) API so it can't fail. (#6869) 2021-05-05 18:51:06 +02:00
ThreadTracer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ThreadTracer.h Kernel: Make Process::start_tracing_from API OOM safe 2021-05-13 16:21:53 +02:00
TimerQueue.cpp Kernel: Modify TimeManagement::current_time(..) API so it can't fail. (#6869) 2021-05-05 18:51:06 +02:00
TimerQueue.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UBSanitizer.cpp Kernel: Remove outdated UBSan comments 2021-05-02 16:18:44 +02:00
UBSanitizer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UnixTypes.h Kernel: Implement IP multicast support 2021-05-05 21:16:17 +02:00
UnveilNode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.h Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
VirtualAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WaitQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WaitQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00