1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-31 22:22:45 +00:00
serenity/Kernel/Memory
Idan Horowitz 1d96c30488 Kernel: Stop leaking leftover committed cow pages from forked processes
Since both the parent process and child process hold a reference to the
COW committed set, once the child process exits, the committed COW
pages are effectively leaked, only being slowly re-claimed each time
the parent process writes to one of them, realizing it's no longer
shared, and uncommitting it.
In order to mitigate this we now hold a weak reference the parent
VMObject from which the pages are cloned, and we use it on destruction
when available to drop the reference to the committed set from it as
well.
2022-07-10 22:17:21 +03:00
..
AddressSpace.cpp Kernel: Decrease the amount of address space offset randomization 2022-06-21 22:38:15 +01:00
AddressSpace.h Kernel: Take the RegionTree spinlock when inspecting tree from outside 2022-04-05 01:15:22 +02:00
AllocationStrategy.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
AnonymousVMObject.cpp Kernel: Stop leaking leftover committed cow pages from forked processes 2022-07-10 22:17:21 +03:00
AnonymousVMObject.h Kernel: Stop leaking leftover committed cow pages from forked processes 2022-07-10 22:17:21 +03:00
InodeVMObject.cpp Kernel: Use default constructors/destructors 2022-03-17 00:51:36 -07:00
InodeVMObject.h Kernel: Make SharedInodeVMObject pages Bitmap allocation OOM-fallible 2022-02-11 17:49:46 +02:00
MappedROM.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MemoryManager.cpp Kernel: Tighten assertion in MM::find_free_user_physical_page 2022-06-06 01:36:18 +03:00
MemoryManager.h Kernel: Verify system memory info consistency 2022-06-06 01:36:18 +03:00
PageDirectory.cpp Kernel: Use intrusive RegionTree solution for kernel regions as well 2022-04-03 21:51:58 +02:00
PageDirectory.h Kernel: Add missing include to PageDirectory.h 2022-04-03 21:51:58 +02:00
PageFaultResponse.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
PhysicalPage.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalPage.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalRegion.cpp Kernel: Use default constructors/destructors 2022-03-17 00:51:36 -07:00
PhysicalRegion.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
PhysicalZone.cpp Kernel: Add implied auto qualifiers in Memory 2022-01-09 23:29:57 -08:00
PhysicalZone.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
PrivateInodeVMObject.cpp Kernel: Use default constructors/destructors 2022-03-17 00:51:36 -07:00
PrivateInodeVMObject.h Kernel: Make SharedInodeVMObject pages Bitmap allocation OOM-fallible 2022-02-11 17:49:46 +02:00
Region.cpp Kernel: Tolerate cloning MAP_STACK regions that are PROT_NONE 2022-06-19 09:05:35 +02:00
Region.h Kernel: Remove unused ShouldDeallocateVirtualRange parameters 2022-04-05 01:15:22 +02:00
RegionTree.cpp Kernel: Limit free space between randomized memory allocations 2022-04-21 13:16:56 +02:00
RegionTree.h Kernel: Move allocate_unbacked_region_anywhere() to MemoryManager 2022-04-05 13:45:10 +02:00
RingBuffer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
RingBuffer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ScatterGatherList.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
ScatterGatherList.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ScopedAddressSpaceSwitcher.cpp Kernel: Implement InterruptDisabler using generic Processor functions 2022-06-02 13:14:12 +01:00
ScopedAddressSpaceSwitcher.h Kernel: Rename ProcessPagingScope => ScopedAddressSpaceSwitcher 2021-09-06 18:56:51 +02:00
SharedFramebufferVMObject.cpp Kernel/Memory: Introduce the SharedFramebufferVMObject class 2022-06-06 20:11:05 +01:00
SharedFramebufferVMObject.h Kernel/Memory: Introduce the SharedFramebufferVMObject class 2022-06-06 20:11:05 +01:00
SharedInodeVMObject.cpp Kernel: Make Inode::set_shared_vmobject() OOM-fallible 2022-02-14 11:35:20 +01:00
SharedInodeVMObject.h Kernel: Make SharedInodeVMObject pages Bitmap allocation OOM-fallible 2022-02-11 17:49:46 +02:00
TypedMapping.h Kernel/Memory: Add TypedMapping base_address method 2022-05-05 20:55:57 +02:00
VirtualRange.cpp Kernel: Use AddressSpace region tree for range allocation 2022-04-03 21:51:58 +02:00
VirtualRange.h Kernel: Use intrusive RegionTree solution for kernel regions as well 2022-04-03 21:51:58 +02:00
VMObject.cpp Kernel: Remove infallible VMObject resource factory functions 2022-01-15 22:16:00 +02:00
VMObject.h Kernel/Memory: Introduce the SharedFramebufferVMObject class 2022-06-06 20:11:05 +01:00