1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-11 02:13:56 +09:00
ladybird/Kernel
Tom e21cc4cff6 Kernel: Remove MAP_PURGEABLE from mmap
This brings mmap more in line with other operating systems. Prior to
this, it was impossible to request memory that was definitely committed,
instead MAP_PURGEABLE would provide a region that was not actually
purgeable, but also not fully committed, which meant that using such memory
still could cause crashes when the underlying pages could no longer be
allocated.

This fixes some random crashes in low-memory situations where non-volatile
memory is mapped (e.g. malloc, tls, Gfx::Bitmap, etc) but when a page in
these regions is first accessed, there is insufficient physical memory
available to commit a new page.
2021-01-01 23:43:44 +01:00
..
ACPI Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
API Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
Arch Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
Devices Everywhere: Fix more typos 2020-12-31 01:47:41 +01:00
FileSystem Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
Heap Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
Interrupts Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
PCI Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
Storage Kernel: Allow to boot from a partition with partition UUID 2021-01-01 22:59:48 +01:00
Syscalls Kernel: Remove MAP_PURGEABLE from mmap 2021-01-01 23:43:44 +01:00
Tasks Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Time Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
TTY Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
VM Kernel: Add MAP_NORESERVE support to mmap 2021-01-01 23:43:44 +01: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 Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
CMakeLists.txt Kernel: Allow to boot from a partition with partition UUID 2021-01-01 22:59:48 +01: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 Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Console.h Kernel: Add a method to determine the desired permissions of a Device 2020-12-27 23:07:44 +01:00
CoreDump.cpp Kernel: Embed a Metadata notes entry in coredumps 2020-12-30 16:28:27 +01:00
CoreDump.h Kernel: Embed a Metadata notes entry in coredumps 2020-12-30 16:28:27 +01:00
DoubleBuffer.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
DoubleBuffer.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Forward.h Kernel: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +01:00
init.cpp Kernel: Introduce a new partitioning subsystem 2020-12-27 23:07:44 +01:00
IO.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
KBuffer.h Kernel: Make KBuffer::try_create_with_bytes() actually copy the bytes 2020-12-23 00:40:11 +01:00
KBufferBuilder.cpp Kernel: Move KBufferBuilder to the fallible KBuffer API 2020-12-18 19:22:26 +01:00
KBufferBuilder.h Kernel: Move KBufferBuilder to the fallible KBuffer API 2020-12-18 19:22:26 +01:00
kprintf.cpp Kernel: Stop supporting sprintf 2020-08-22 20:55:10 +02:00
KResult.h Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
kstdio.h LibC: Enable compiler warnings for printf format strings 2020-12-26 10:05:50 +01:00
KSyms.cpp Kernel+LibELF: Stop doing ELF symbolication in the kernel 2020-12-25 01:03:46 +01:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
Lock.cpp Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
Lock.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
LockMode.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01: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: Use fallible KBuffer API in PerformanceEventBuffer 2020-12-19 10:23:12 +01:00
PerformanceEventBuffer.h Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
PhysicalAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Process.cpp Kernel: Remove MAP_PURGEABLE from mmap 2021-01-01 23:43:44 +01:00
Process.h Kernel: Add MAP_NORESERVE support to mmap 2021-01-01 23:43:44 +01:00
ProcessGroup.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Profiling.cpp Kernel+LibELF: Stop doing ELF symbolication in the kernel 2020-12-25 01:03:46 +01:00
Profiling.h Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Ptrace.cpp Kernel+LibC: Introduce a "dumpable" flag for processes 2020-12-25 19:35:55 +01:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Random.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01:00
RTC.cpp Kernel: Minor tweak to now() computation 2020-08-26 08:52:07 +02:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
Scheduler.h Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
SharedBuffer.cpp Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
SharedBuffer.h Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
SpinLock.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01:00
StdLib.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
StdLib.h Kernel: Add checks for is_trivially_copyable to copy_to/from_user 2020-10-02 15:38:07 +02:00
Syscall.cpp Kernel: Don't allow modifying IOPL via sys$ptrace() or sys$sigreturn() 2020-12-22 19:38:25 +01:00
Thread.cpp AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
Thread.h Kernel: Fix BlockCondition::unblock return value 2020-12-31 10:52:58 +01:00
ThreadBlockers.cpp Kernel: Consolidate the various BlockCondition::unblock variants 2020-12-30 13:23:17 +01:00
ThreadTracer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
ThreadTracer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
TimerQueue.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
TimerQueue.h Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
UnixTypes.h Kernel: Remove MAP_PURGEABLE from mmap 2021-01-01 23:43:44 +01:00
UnveilNode.h Kernel: Allow 'elevating' unveil permissions if implicitly inherited from '/' 2020-12-26 16:10:04 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h FileSystem: Use OutputMemoryStream instead of BufferStream. 2020-09-15 20:36:45 +02:00
VirtualAddress.cpp AK+Format: Remove TypeErasedFormatParams& from format function. 2020-12-30 20:33:53 +01:00
VirtualAddress.h AK+Format: Remove TypeErasedFormatParams& from format function. 2020-12-30 20:33:53 +01:00
WaitQueue.cpp Everywhere: Fix more typos 2020-12-31 01:47:41 +01:00
WaitQueue.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00