1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:38:10 +00:00
serenity/Kernel
Andreas Kling a3063dfd33 Kernel: Simplify ProcFS generated buffer caching
Use a Mutex instead of a SpinLock to protect the per-FileDescription
generated data cache. This allows processes to go to sleep while
waiting their turn.

Also don't try to be clever by reusing existing cache buffers.
Just allocate KBuffers as needed (and make sure to surface failures.)
2021-07-20 18:05:05 +02:00
..
ACPI Kernel: Don't truncate physical address in ACPI table to 32 bits 2021-07-18 22:09:05 +02:00
API Kernel: Disable big process lock for sys$yield() 2021-07-20 03:21:14 +02:00
Arch Kernel: Mark read only RegisterState function parameters as const 2021-07-20 03:21:14 +02:00
Bus Kernel/USB: Remove unneeded friend declaration in SysFSUSBBusDirectory 2021-07-18 01:53:04 +02:00
Devices Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
FileSystem Kernel+LibC: Implement fcntl(2) advisory locks 2021-07-20 17:44:30 +04:30
Graphics Kernel: Clean up VirtIOGPU class interfaces 2021-07-18 19:58:17 +04:30
Heap Kernel+AK: Generate compile-time error for non-sized delete 2021-07-16 20:51:13 +02:00
Interrupts Kernel: Remove unused header includes in Interrupts subtree 2021-07-11 21:37:38 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel/E1000: Consolidate RX and TX buffer regions 2021-07-19 02:16:24 +02:00
Prekernel Prekernel: Make sure to reload CR3 after modifying the page tables 2021-07-20 15:12:19 +02:00
Storage Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Syscalls Kernel+LibC: Implement fcntl(2) advisory locks 2021-07-20 17:44:30 +04:30
Tasks Kernel: Make VirtualFileSystem::sync() static 2021-07-11 00:26:17 +02:00
Time Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
TTY Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
VirtIO Kernel: Fix inverted check in VirtIOConsolePort 2021-07-14 12:33:07 +02:00
VM Prekernel: Use physical addresses for some of the BootInfo parameters 2021-07-20 15:12:19 +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 Kernel: Add [[unlikely]] attribute to VERIFY 2021-06-29 22:57:52 +04:30
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
BootInfo.h Kernel: Rename .boot_bss to .super_pages to better reflect what it is 2021-07-20 15:12:19 +02:00
CMakeLists.txt Kernel: Use the C preprocessor to avoid two copies of the linker script 2021-07-20 15:12:19 +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: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
CommandLine.h Kernel/CommandLine: Add option to disable physical networking hardware 2021-06-09 22:44:09 +04:30
ConsoleDevice.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
ConsoleDevice.h Kernel: Make various T::class_name() and similar return StringView 2021-07-11 01:46:59 +02:00
CoreDump.cpp Kernel: Rename VFS => VirtualFileSystem 2021-07-11 00:25:24 +02:00
CoreDump.h Kernel: Use Forward.h headers more 2021-07-11 14:14:51 +02:00
Debug.h.in USB: Further Implement USB Structures 2021-06-12 18:17:25 +04:30
DoubleBuffer.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
DoubleBuffer.h Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel/USB: Move USB bus information from /proc to /sys 2021-07-18 00:55:16 +02:00
FutexQueue.cpp Kernel: Fix futex race that could lead to thread waiting forever 2021-07-07 10:05:55 +02:00
FutexQueue.h Kernel: Fix futex race that could lead to thread waiting forever 2021-07-07 10:05:55 +02:00
GlobalProcessExposed.cpp Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
init.cpp Kernel: Rename .boot_bss to .super_pages to better reflect what it is 2021-07-20 15:12:19 +02:00
IO.h Kernel: Specify I/O size for BMIDEChannel 2021-06-28 15:55:00 +02:00
KBuffer.h Kernel: Fix always-true comparison warnings 2021-07-03 01:56:31 +04:30
KBufferBuilder.cpp Everywhere: Use nothrow new with adopt_{ref,own}_if_nonnull 2021-06-24 17:35:49 +04:30
KBufferBuilder.h Kernel: Remove confused comment in KBufferBuilder::appendff() 2021-07-20 18:05:05 +02:00
KLexicalPath.cpp Kernel: Make KLexicalPath::basename() more compliant 2021-07-11 14:10:58 +02:00
KLexicalPath.h Kernel: Add KLexicalPath::try_join and use it 2021-07-07 15:32:17 +02:00
kprintf.cpp Kernel: Add dbgputch() to kstdio.h 2021-06-24 10:29:09 +02:00
KResult.h AK+Kernel: Fix perfect forwarding constructors shadowing others 2021-07-08 10:11:00 +02:00
kstdio.h Kernel: Add dbgputch() to kstdio.h 2021-06-24 10:29:09 +02:00
KString.cpp Kernel: Allow passing null pointer to delete 2021-07-14 13:12:25 +02:00
KString.h Kernel: Add formatter function for OwnPtr<KString> 2021-07-07 15:32:17 +02:00
KSyms.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
KSyms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
linker.ld Kernel: Specify protection flags for ELF load headers 2021-07-20 15:12:19 +02:00
LockMode.h Kernel: Allow Lock to block from BlockCondition 2021-07-12 11:27:18 +02:00
MiniStdLib.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
mkmap.sh Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +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
Mutex.cpp Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
Mutex.h Kernel: Allow MutexLocker to be conditionally initialized 2021-07-20 03:21:14 +02:00
Panic.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Rename PerformanceEvent methods to be more ARCH independent 2021-07-19 08:46:55 +02:00
PerformanceEventBuffer.h Kernel: Rename PerformanceEvent methods to be more ARCH independent 2021-07-19 08:46:55 +02:00
PerformanceManager.h Kernel: Rename PerformanceEvent methods to be more ARCH independent 2021-07-19 08:46:55 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel: Add .profile extension to perfcore files 2021-07-18 19:01:57 +02:00
Process.h Kernel: Instrument syscalls with their process big lock requirements 2021-07-20 03:21:14 +02:00
ProcessExposed.cpp Kernel: Simplify ProcFS generated buffer caching 2021-07-20 18:05:05 +02:00
ProcessExposed.h Kernel: Simplify ProcFS generated buffer caching 2021-07-20 18:05:05 +02:00
ProcessGroup.cpp Kernel: Standardize the header include style to 'include <Kernel/...>' 2021-07-11 21:37:38 +02:00
ProcessGroup.h Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +02:00
ProcessSpecificExposed.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Random.cpp Kernel: Rename Locker => MutexLocker 2021-07-18 01:53:04 +02:00
Random.h Kernel: Rename Lock to Mutex 2021-07-17 21:10:32 +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: Push ARCH specific ifdef's down into RegisterState functions 2021-07-19 08:46:55 +02:00
Scheduler.h Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
Sections.h Kernel: Move boot info declarations to a header file 2021-07-20 15:12:19 +02:00
SpinLock.h Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
StdLib.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
StdLib.h Everywhere: Fix incorrect usages of AK::Checked 2021-07-04 20:08:28 +01:00
Syscall.cpp Kernel: Conditionally acquire the big lock based on syscall metadata 2021-07-20 03:21:14 +02:00
Thread.cpp Kernel: Push ARCH specific ifdef's down into RegisterState functions 2021-07-19 08:46:55 +02:00
Thread.h Kernel: Push ARCH specific ifdef's down into RegisterState functions 2021-07-19 08:46:55 +02:00
ThreadBlockers.cpp Kernel: Fix bogus check in Thread::WaitBlockCondition::finalize() 2021-07-16 15:18:47 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Everywhere: Use nothrow new with adopt_{ref,own}_if_nonnull 2021-06-24 17:35:49 +04:30
TimerQueue.cpp Kernel: Fix deadlock cancelling timer 2021-07-12 11:27:18 +02:00
TimerQueue.h Kernel: Fix deadlock cancelling timer 2021-07-12 11:27:18 +02:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h Kernel+LibC: Implement fcntl(2) advisory locks 2021-07-20 17:44:30 +04:30
UnveilNode.h Kernel: Allow unveiling subfolders regardless of parent's permissions 2021-06-08 12:15:04 +02:00
UserOrKernelBuffer.cpp Kernel: Add an API for turning a UserOrKernelBuffer into a KString 2021-07-17 22:07:49 +02:00
UserOrKernelBuffer.h Kernel: Add an API for turning a UserOrKernelBuffer into a KString 2021-07-17 22:07:49 +02:00
VirtualAddress.h Kernel: Make VirtualAddress::page_base() work with 64-bit addresses 2021-07-18 17:31:13 +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: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
WorkQueue.h Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00