1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:38:11 +00:00
serenity/Kernel/VM
Idan Horowitz 3e909c0c49 Kernel: Remove double-counting of allocated pages in AnonymousVMObject
When constructing an AnonymousVMObject with the AllocateNow allocation
strategy we accidentally allocated the committed pages directly through
MemoryManager instead of taking them from our m_unused_physical_pages
CommittedPhysicalPageSet, which meant they were counted as allocated in
MemoryManager, but were still counted as unallocated in the PageSet,
who would then try to uncommit them on destruction, resulting in a
failed assertion.

To help prevent similar issues in the future a Badge<T> was added to
MM::allocate_committed_user_physical_page to prevent allocation of
commited pages not via a CommittedPhysicalPageSet.
2021-08-05 20:26:47 +02:00
..
AllocationStrategy.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
AnonymousVMObject.cpp Kernel: Remove double-counting of allocated pages in AnonymousVMObject 2021-08-05 20:26:47 +02:00
AnonymousVMObject.h Kernel: Uncommit a shared COW page when discovering it was unshared 2021-08-05 17:41:58 +02:00
InodeVMObject.cpp Kernel: Simplify VMObject locking & page fault handlers 2021-07-23 03:24:44 +02:00
InodeVMObject.h Kernel: Simplify VMObject locking & page fault handlers 2021-07-23 03:24:44 +02:00
MappedROM.h Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
MemoryManager.cpp Kernel: Remove double-counting of allocated pages in AnonymousVMObject 2021-08-05 20:26:47 +02:00
MemoryManager.h Kernel: Remove double-counting of allocated pages in AnonymousVMObject 2021-08-05 20:26:47 +02:00
PageDirectory.cpp Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
PageDirectory.h Kernel: Fix 64-bit address truncation in MemoryManager::ensure_pte() 2021-07-18 17:31:13 +02:00
PageFaultResponse.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
PhysicalPage.cpp Kernel: Convert the PhysicalPage bool parameter to an enum 2021-07-17 18:38:28 +04:30
PhysicalPage.h Kernel: Convert the PhysicalPage bool parameter to an enum 2021-07-17 18:38:28 +04:30
PhysicalRegion.cpp Kernel: Remove debug spam when PhysicalRegion::take_free_page() fails 2021-07-14 01:37:31 +02:00
PhysicalRegion.h Kernel: Fix logic error in PhysicalRegion::contains() 2021-07-14 01:37:19 +02:00
PhysicalZone.cpp Kernel: Cut allocation size for physical buddy bitmaps in half 2021-07-13 23:47:49 +02:00
PhysicalZone.h Kernel: Remove some friendships and make some classes non-copy/moveable 2021-07-13 23:19:00 +02:00
PrivateInodeVMObject.cpp Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
PrivateInodeVMObject.h Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
ProcessPagingScope.cpp Kernel: Remove unused header includes in VM subtree 2021-07-11 21:37:38 +02:00
ProcessPagingScope.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Range.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
Range.h Everywhere: Prefix hexadecimal numbers with 0x 2021-07-22 08:57:01 +02:00
RangeAllocator.cpp Kernel: Make allocate_randomized() work for 64-bit addresses 2021-07-18 17:31:13 +02:00
RangeAllocator.h Kernel: Declare VM/RangeAllocator trivial destructor as default 2021-07-17 13:02:09 +02:00
Region.cpp Kernel: Remove unnecessary counting of VMObject-attached Regions 2021-07-25 17:28:06 +02:00
Region.h Kernel: Remove unused Region::translate_vmobject_page_range() 2021-07-27 13:17:33 +02:00
RingBuffer.cpp Kernel: Add support for reading from VirtIOConsole 2021-07-09 13:19:21 +04:30
RingBuffer.h Kernel: Support multiport for VirtIOConsole 2021-07-09 13:19:21 +04:30
ScatterGatherList.cpp Kernel: Consolidate API for creating AnonymousVMObject with given pages 2021-07-22 09:17:02 +02:00
ScatterGatherList.h Kernel: Consolidate API for creating AnonymousVMObject with given pages 2021-07-22 09:17:02 +02:00
SharedInodeVMObject.cpp Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
SharedInodeVMObject.h Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
Space.cpp Kernel: Unmapping a non-mapped region with munmap() should be a no-op 2021-07-30 13:16:55 +02:00
Space.h Kernel: Rename Space::create => Space::try_create() 2021-07-27 14:54:35 +02:00
TypedMapping.h Kernel/TypedMapping: Round up length with offset_in_page 2021-07-02 13:16:12 +02:00
VMObject.cpp Kernel: Remove unnecessary counting of VMObject-attached Regions 2021-07-25 17:28:06 +02:00
VMObject.h Kernel: Remove unnecessary counting of VMObject-attached Regions 2021-07-25 17:28:06 +02:00