serenity/Kernel/Memory
Andreas Kling 9e9924115f Kernel: Release some clean file-backed memory when starved for pages
Until now, our only backup plan when running out of physical pages
was to try and purge volatile memory. If that didn't work out, we just
hung userspace out to dry with an ENOMEM.

This patch improves the situation by also considering clean, file-backed
pages (that we could page back in from disk).

This could be better in many ways, but it already allows us to boot to
WindowServer with 256 MiB of RAM. :^)
2022-08-14 23:33:28 +02:00
..
AddressSpace.cpp Kernel: Add some inline capacity to find_regions_intersecting 2022-07-15 12:42:43 +02:00
AddressSpace.h Kernel: Add some inline capacity to find_regions_intersecting 2022-07-15 12:42:43 +02:00
AllocationStrategy.h
AnonymousVMObject.cpp Kernel+Userland: Rename prefix of user_physical => physical 2022-07-14 23:27:46 +02:00
AnonymousVMObject.h Kernel: Stop leaking leftover committed cow pages from forked processes 2022-07-10 22:17:21 +03:00
InodeVMObject.cpp
InodeVMObject.h
MappedROM.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MemoryManager.cpp Kernel: Release some clean file-backed memory when starved for pages 2022-08-14 23:33:28 +02:00
MemoryManager.h Kernel+Userland: Rename prefix of user_physical => physical 2022-07-14 23:27:46 +02:00
PageDirectory.cpp Kernel+Userland: Rename prefix of user_physical => physical 2022-07-14 23:27:46 +02:00
PageDirectory.h Kernel: Add missing include to PageDirectory.h 2022-04-03 21:51:58 +02:00
PageFaultResponse.h
PhysicalPage.cpp
PhysicalPage.h
PhysicalRegion.cpp
PhysicalRegion.h
PhysicalZone.cpp
PhysicalZone.h
PrivateInodeVMObject.cpp
PrivateInodeVMObject.h
Region.cpp Kernel+Userland: Rename prefix of user_physical => physical 2022-07-14 23:27:46 +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 Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02: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
SharedFramebufferVMObject.cpp Kernel+Userland: Rename prefix of user_physical => physical 2022-07-14 23:27:46 +02:00
SharedFramebufferVMObject.h Kernel/Memory: Introduce the SharedFramebufferVMObject class 2022-06-06 20:11:05 +01:00
SharedInodeVMObject.cpp
SharedInodeVMObject.h
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 Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
VMObject.cpp
VMObject.h Kernel/Memory: Introduce the SharedFramebufferVMObject class 2022-06-06 20:11:05 +01:00