1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 06:18:12 +00:00
serenity/Kernel
Andreas Kling 164c9617c3 Kernel: Only lock file descriptor table once in sys$pipe()
Instead of locking it twice, we now frontload all the work that doesn't
touch the fd table, and then only lock it towards the end of the
syscall.

The benefit here is simplicity. The downside is that we do a bit of
unnecessary work in the EMFILE error case, but we don't need to optimize
that case anyway.
2022-08-16 20:39:45 +02:00
..
API Kernel: Make sys$pipe() not take the big lock 2022-08-16 20:20:11 +02:00
Arch Kernel: Move TrapFrame into its own header on aarch64 2022-08-14 09:44:48 +01:00
Bus Kernel: Remove PCI information node from ProcFS 2022-07-30 23:29:07 +02:00
Devices Kernel: Detect the Insert key 2022-07-30 23:25:20 +02:00
FileSystem Kernel: Lock the inode before writing in SharedInodeVMObject::sync 2022-08-16 16:54:03 +02:00
Firmware Kernel/SysFS: Mark SysFSDirectory traverse and lookup methods as final 2022-07-15 12:29:23 +02:00
Graphics Kernel: Move TrapFrame into its own header on aarch64 2022-08-14 09:44:48 +01:00
Heap Everywhere: Make the codebase more architecture aware 2022-07-27 21:46:42 +00:00
Interrupts Everywhere: Use default StringView constructor over nullptr 2022-07-12 23:11:35 +02:00
Library Kernel+AK: Split Weakable.h into userspace and kernel variants 2022-06-15 17:15:04 +02:00
Locking Kernel: Don't check that interrupts are enabled during early boot 2022-07-19 12:12:13 +01:00
Memory Kernel: Lock the inode before writing in SharedInodeVMObject::sync 2022-08-16 16:54:03 +02:00
Net Kernel: Silently discard SO_REUSEADDR 2022-08-01 04:23:41 +00:00
Prekernel Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Storage Kernel/Storage: Remove InterfaceType enum 2022-08-14 01:09:03 +01:00
Syscalls Kernel: Only lock file descriptor table once in sys$pipe() 2022-08-16 20:39:45 +02:00
Tasks Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Time Everywhere: Make the codebase more architecture aware 2022-07-27 21:46:42 +00:00
TTY Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
AddressSanitizer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Kernel: Do not implement VERIFY_NOT_REACHED() as VERIFY(false) 2022-05-12 13:12:37 +02:00
AtomicEdgeAction.h Kernel: Add per platform Processor.h headers 2021-10-14 01:23:08 +01:00
BootInfo.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CMakeLists.txt Kernel: Move TrapFrame into its own header on aarch64 2022-08-14 09:44:48 +01:00
CMOS.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Kernel/Commandline: Remove a remainder of the removed boot_mode flag 2022-08-14 01:03:23 +01:00
CommandLine.h Kernel/Graphics: Simplify the feature level of the Graphics subsystem 2022-05-05 20:55:57 +02:00
Coredump.cpp Everywhere: Make the codebase more architecture aware 2022-07-27 21:46:42 +00:00
Coredump.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
Debug.h.in Kernel/FileSystem: Use a new debug flag for SysFS debug messages 2022-08-08 02:33:25 +00:00
DoubleBuffer.cpp Kernel: Annotate all KBuffer and DoubleBuffer with a custom name 2022-07-12 00:55:31 +01:00
DoubleBuffer.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
FutexQueue.cpp Kernel: Propagate OOM conditions out of sys$futex 2022-07-21 16:39:22 +02:00
FutexQueue.h Kernel: Propagate OOM conditions out of sys$futex 2022-07-21 16:39:22 +02:00
GlobalProcessExposed.cpp Kernel: Remove PCI information node from ProcFS 2022-07-30 23:29:07 +02:00
init.cpp Kernel/Graphics: Rename TextModeConsole => VGATextModeConsole 2022-07-13 19:15:17 +01:00
KBuffer.h Kernel: Annotate all KBuffer and DoubleBuffer with a custom name 2022-07-12 00:55:31 +01:00
KBufferBuilder.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
KBufferBuilder.h Kernel: Expose .length() of KBufferBuilder 2022-05-06 02:12:51 +04:30
KLexicalPath.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
KLexicalPath.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
kprintf.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
kstdio.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
KString.cpp Kernel: Add an error propagating KString::format(..) API :^) 2021-11-30 11:16:35 +01:00
KString.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
KSyms.cpp Kernel: Move Kernel/Arch/x86/SafeMem.h to Kernel/Arch/SafeMem.h 2022-05-03 21:53:36 +02:00
KSyms.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MiniStdLib.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
mkmap.sh Kernel: Use the toolchain's nm in mkmap.sh 2021-12-30 18:10:51 +01:00
Multiboot.h Kernel: Only use multiboot framebuffer details if present 2022-01-06 22:34:11 +01:00
Panic.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Panic.h Kernel: Implement __panic() for the aarch64 Kernel 2022-05-03 21:53:36 +02:00
PerformanceEventBuffer.cpp Everywhere: Use default StringView constructor over nullptr 2022-07-12 23:11:35 +02:00
PerformanceEventBuffer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
PerformanceManager.h Everywhere: Use default StringView constructor over nullptr 2022-07-12 23:11:35 +02:00
PhysicalAddress.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Process.cpp Kernel: Make failure to write coredump or perfcore a regular dmesg 2022-08-10 11:38:18 -04:00
Process.h Kernel: Don't leak file descriptors in sys$pipe() 2022-08-16 20:35:32 +02:00
ProcessExposed.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
ProcessExposed.h Kernel: Remove PCI information node from ProcFS 2022-07-30 23:29:07 +02:00
ProcessGroup.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
ProcessGroup.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ProcessProcFSTraits.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
ProcessSpecificExposed.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Random.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Random.h Kernel: Make PhysicalRegion.cpp compile on aarch64 2022-04-02 19:34:20 -07:00
RTC.cpp Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel: Add some implied auto qualifiers 2021-12-30 14:32:17 +01:00
Scheduler.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Scheduler.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Sections.h Kernel: Use the whole kernel PD range when randomizing the KASLR offset 2022-03-23 19:49:49 +02:00
StdLib.cpp Kernel: Move Kernel/Arch/x86/SafeMem.h to Kernel/Arch/SafeMem.h 2022-05-03 21:53:36 +02:00
StdLib.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Syscall.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Thread.cpp Kernel: Fix a typo and a grammar issue in code comments 2022-08-10 11:38:18 -04:00
Thread.h Kernel: Shrink default userspace stack size from 4 MiB to 1 MiB 2022-08-15 17:18:11 +02:00
ThreadBlockers.cpp Kernel: Support F_SETLKW in fcntl 2022-07-21 16:39:22 +02:00
ThreadTracer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ThreadTracer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TimerQueue.cpp Kernel: Fix a typo and a grammar issue in code comments 2022-08-10 11:38:18 -04:00
TimerQueue.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00
UBSanitizer.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
UnixTypes.h Kernel: Add support for SA_SIGINFO 2022-03-04 20:07:05 +01:00
UserOrKernelBuffer.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
UserOrKernelBuffer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
VirtualAddress.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
WorkQueue.cpp Kernel/Storage: Introduce basic abstraction layer for ATA components 2022-07-19 11:07:34 +01:00
WorkQueue.h Kernel/Storage: Introduce basic abstraction layer for ATA components 2022-07-19 11:07:34 +01:00