ladybird/Kernel
Brian Gianforcaro e95eb7a51d Kernel: Avoid allocating under spinlock in ProcessGroup::find_or_create
Avoid allocating while holding the g_process_groups_lock spinlock, it's
a pattern that has a negative effect on performance and scalability,
especially given that it is a global lock, reachable by all processes.
2021-05-20 08:10:07 +02:00
..
ACPI Kernel/ACPI: Map two pages when reading the FADT 2021-05-08 19:15:54 +02:00
API Kernel: Add statvfs & fstatvfs Syscalls 2021-05-19 21:33:29 +02:00
Arch Kernel: Remove s_processor_lock by making s_processors statically sized 2021-05-20 08:10:07 +02:00
Devices Kernel: static vs non-static constexpr variables 2021-05-19 21:21:47 +01:00
FileSystem Kernel: static vs non-static constexpr variables 2021-05-19 21:21:47 +01:00
Graphics Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
Heap Kernel: Add support for profiling kmalloc()/kfree() 2021-05-19 22:51:42 +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: static vs non-static constexpr variables 2021-05-19 21:21:47 +01:00
PCI Kernel: Add support for QEMU's emulated pci serial (-pci-serial option) 2021-05-17 19:45:35 +01:00
Storage Kernel: Don't ref-count UsedMemoryRange during iteration 2021-05-16 19:58:33 +02:00
Syscalls Kernel: Make ProcessGroup::find_or_create API OOM safe 2021-05-20 08:10:07 +02:00
Tasks Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Time Kernel: Fix return value for {enable,disable}_profile_timer() 2021-05-17 21:53:04 +02:00
TTY Kernel: static vs non-static constexpr variables 2021-05-19 21:21:47 +01:00
VirtIO Kernel: Reorder VirtIODevice PCI initialization steps 2021-05-15 23:29:03 +01:00
VM Kernel: Do not allocate AnonymousVMObject's under spin lock 2021-05-20 08:10:07 +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 Kernel: Add statvfs & fstatvfs Syscalls 2021-05-19 21:33:29 +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 Kernel: Allow the user to specify the virtual console when booting 2021-05-16 19:58:33 +02:00
CommandLine.h Kernel: Allow the user to specify the virtual console when booting 2021-05-16 19:58:33 +02:00
ConsoleDevice.cpp Kernel: Rename Console => ConsoleDevice 2021-05-16 19:58:33 +02:00
ConsoleDevice.h Kernel: Rename Console => ConsoleDevice 2021-05-16 19:58:33 +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/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +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: Don't update write_pos in DoubleBuffer if userspace copy fails 2021-05-18 16:47:26 +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+LibC: Add support for filtering profiling events 2021-05-19 22:51:42 +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 Kernel: Implement a PCI Serial Device driver 2021-05-17 18:15:25 +02:00
KResult.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
kstdio.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +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 Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Generate page fault events from the kernel profiler 2021-05-19 22:51:42 +02:00
PerformanceEventBuffer.h Kernel: Add support for profiling kmalloc()/kfree() 2021-05-19 22:51:42 +02:00
PerformanceManager.h Kernel: Generate page fault events from the kernel profiler 2021-05-19 22:51:42 +02:00
PhysicalAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Process.cpp Kernel: Disable profile timer when the process exits 2021-05-17 21:53:04 +02:00
Process.h Kernel+LibC: Add support for filtering profiling events 2021-05-19 22:51:42 +02:00
ProcessGroup.cpp Kernel: Avoid allocating under spinlock in ProcessGroup::find_or_create 2021-05-20 08:10:07 +02:00
ProcessGroup.h Kernel: Avoid allocating under spinlock in ProcessGroup::find_or_create 2021-05-20 08:10:07 +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: Add support for profiling kmalloc()/kfree() 2021-05-19 22:51:42 +02:00
Scheduler.h Kernel: Add support for profiling kmalloc()/kfree() 2021-05-19 22:51:42 +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 AK+Kernel+LibELF: Remove the need for IteratorDecision::Continue 2021-05-16 10:36:52 +01:00
Thread.h Kernel: Generate page fault events from the kernel profiler 2021-05-19 22:51:42 +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: static vs non-static constexpr variables 2021-05-19 21:21:47 +01:00
UBSanitizer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UnixTypes.h Kernel: Generate page fault events from the kernel profiler 2021-05-19 22:51:42 +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 Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00
WorkQueue.h Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00