1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:58:12 +00:00
serenity/Kernel/Memory
Andreas Kling a838fdfd88 Kernel: Make the page table quickmaps per-CPU
While the "regular" quickmap (used to temporarily map a physical page
at a known address for quick access) has been per-CPU for a while,
we also have the PD (page directory) and PT (page table) quickmaps
used by the memory management code to edit page tables. These have been
global, which meant that SMP systems had to keep fighting over them.

This patch makes *all* quickmaps per-CPU. We reserve virtual addresses
for up to 64 CPUs worth of quickmaps for now.

Note that all quickmaps are still protected by the MM lock, and we'll
have to fix that too, before seeing any real throughput improvements.
2022-08-22 17:56:03 +02:00
..
AddressSpace.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
AddressSpace.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
AllocationStrategy.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
AnonymousVMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
AnonymousVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
InodeVMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
InodeVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
MappedROM.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MemoryManager.cpp Kernel: Make the page table quickmaps per-CPU 2022-08-22 17:56:03 +02:00
MemoryManager.h Kernel: Make the page table quickmaps per-CPU 2022-08-22 17:56:03 +02:00
PageDirectory.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PageDirectory.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PageFaultResponse.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
PhysicalPage.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalPage.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalRegion.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalRegion.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02: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: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PrivateInodeVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Region.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Region.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
RegionTree.cpp Kernel: Limit free space between randomized memory allocations 2022-04-21 13:16:56 +02:00
RegionTree.h Kernel: Require lock rank for Spinlock construction 2022-08-19 20:26:47 -07:00
RingBuffer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
RingBuffer.h Kernel: Require lock rank for Spinlock construction 2022-08-19 20:26:47 -07:00
ScatterGatherList.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ScatterGatherList.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02: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: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SharedFramebufferVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SharedInodeVMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SharedInodeVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +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 Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
VMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
VMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00