ladybird/Kernel/VM
Andreas Kling fe6b3f99d1 Kernel: Allocate shared memory regions immediately
Lazily committed shared memory was not working in situations where one
process would write to the memory and another would only read from it.

Since the reading process would never cause a write fault in the shared
region, we'd never notice that the writing process had added real
physical pages to the VMObject. This happened because the lazily
committed pages were marked "present" in the page table.

This patch solves the issue by always allocating shared memory up front
and not trying to be clever about it.
2021-01-02 16:57:31 +01:00
..
AllocationStrategy.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
AnonymousVMObject.cpp Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
AnonymousVMObject.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
ContiguousVMObject.cpp Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
ContiguousVMObject.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
InodeVMObject.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
InodeVMObject.h Kernel: Remove the limited use of AK::TypeTraits we had in the kernel 2021-01-01 15:32:44 +01:00
MappedROM.h Kernel: Fix various forward declarations 2020-09-12 13:46:15 +02:00
MemoryManager.cpp Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
MemoryManager.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
PageDirectory.cpp Kernel: More gracefully handle out-of-memory when creating PageDirectory 2021-01-01 23:43:44 +01:00
PageDirectory.h Kernel: More gracefully handle out-of-memory when creating PageDirectory 2021-01-01 23:43:44 +01:00
PageFaultResponse.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
PhysicalPage.cpp Kernel: Make PhysicalPage not movable and use atomic ref counting 2020-08-25 09:48:48 +02:00
PhysicalPage.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
PhysicalRegion.cpp Kernel/VM: Make local_offset in PhysicalRegion::find_one_free_page unsigned 2020-12-29 02:20:26 +01:00
PhysicalRegion.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PrivateInodeVMObject.cpp Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
PrivateInodeVMObject.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
ProcessPagingScope.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
ProcessPagingScope.h Kernel: Move ProcessPagingScope to its own files 2020-03-01 15:38:09 +01:00
PurgeablePageRanges.cpp Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
PurgeablePageRanges.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
RangeAllocator.cpp AK: Make binary_search signature more generic. 2020-12-30 02:13:30 +01:00
RangeAllocator.h Kernel: Add locks around RangeAllocator 2020-11-11 12:27:25 +01:00
Region.cpp Kernel: Allocate shared memory regions immediately 2021-01-02 16:57:31 +01:00
Region.h Kernel: Pass "shared" flag to Region constructor 2021-01-02 16:57:31 +01:00
SharedInodeVMObject.cpp Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
SharedInodeVMObject.h Kernel: Implement lazy committed page allocation 2021-01-01 23:43:44 +01:00
TypedMapping.h Kernel: Add non-const version of TypedMapping::operator->() 2020-05-23 15:57:19 +02:00
VMObject.cpp Refactor: Replace usages of FixedArray with Vector. 2020-09-08 14:01:21 +02:00
VMObject.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00