ladybird/Kernel/VM
Tom bc5d6992a4 Kernel: Memory purging improvements
This adds the ability for a Region to define volatile/nonvolatile
areas within mapped memory using madvise(). This also means that
memory purging takes into account all views of the PurgeableVMObject
and only purges memory that is not needed by all of them. When calling
madvise() to change an area to nonvolatile memory, return whether
memory from that area was purged. At that time also try to remap
all memory that is requested to be nonvolatile, and if insufficient
pages are available notify the caller of that fact.
2021-01-01 23:43:44 +01:00
..
AnonymousVMObject.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
AnonymousVMObject.h Kernel: Remove the limited use of AK::TypeTraits we had in the kernel 2021-01-01 15:32:44 +01:00
ContiguousVMObject.cpp Kernel: Allow contiguous allocations in physical memory 2020-03-08 14:13:30 +01:00
ContiguousVMObject.h Kernel: Remove the limited use of AK::TypeTraits we had in the kernel 2021-01-01 15:32: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: Memory purging improvements 2021-01-01 23:43:44 +01:00
MemoryManager.h Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
PageDirectory.cpp Kernel: Prevent sign bit extension when creating a PDPTE 2020-12-30 20:33:15 +01:00
PageDirectory.h Kernel: Protect the PageDirectory from concurrent access 2020-11-11 12:27:25 +01:00
PhysicalPage.cpp Kernel: Make PhysicalPage not movable and use atomic ref counting 2020-08-25 09:48:48 +02:00
PhysicalPage.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02: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: Split InodeVMObject into two subclasses 2020-02-28 20:20:35 +01:00
PrivateInodeVMObject.h Kernel: Add some InodeVMObject type assertions in Region::clone() 2020-03-01 11:23:10 +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
PurgeableVMObject.cpp Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
PurgeableVMObject.h Kernel: Memory purging improvements 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: Memory purging improvements 2021-01-01 23:43:44 +01:00
Region.h Kernel: Memory purging improvements 2021-01-01 23:43:44 +01:00
SharedInodeVMObject.cpp Kernel: Remove flawed SharedInodeVMObject assertion 2020-12-31 10:52:45 +01:00
SharedInodeVMObject.h Kernel: Remove flawed SharedInodeVMObject assertion 2020-12-31 10:52:45 +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: Remove the limited use of AK::TypeTraits we had in the kernel 2021-01-01 15:32:44 +01:00