ladybird/Kernel/Memory
Tom 6e46e21c42 Kernel: Implement Page Attribute Table (PAT) support and Write-Combine
This allows us to enable Write-Combine on e.g. framebuffers,
significantly improving performance on bare metal.

To keep things simple we right now only use one of up to three bits
(bit 7 in the PTE), which maps to the PA4 entry in the PAT MSR, which
we set to the Write-Combine mode on each CPU at boot time.
2022-01-26 09:21:04 +02:00
..
AddressSpace.cpp Kernel: Make AddressSpace::find_regions_intersecting OOM-fallible 2022-01-26 02:37:03 +02:00
AddressSpace.h Kernel: Make AddressSpace::find_regions_intersecting OOM-fallible 2022-01-26 02:37:03 +02:00
AllocationStrategy.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
AnonymousVMObject.cpp Kernel: Make AnonymousVMObject construction OOM-aware 2022-01-15 22:16:00 +02:00
AnonymousVMObject.h Kernel: Make AnonymousVMObject construction OOM-aware 2022-01-15 22:16:00 +02:00
InodeVMObject.cpp Kernel: Make InodeVMOBject construction OOM-aware 2022-01-15 22:16:00 +02:00
InodeVMObject.h Kernel: Make InodeVMOBject construction OOM-aware 2022-01-15 22:16:00 +02:00
MappedROM.h Kernel: Fix possible buffer overrun when scanning a MappedROM 2022-01-04 17:46:36 +00:00
MemoryManager.cpp Kernel: Use an IntrusiveRedBlackTree for kernel regions 2022-01-16 23:31:01 +01:00
MemoryManager.h Kernel: Add missing #include <AK/Badge.h> to MemoryManager.h 2022-01-23 14:31:50 +01:00
PageDirectory.cpp Kernel: Don't access directory table of uninitialized PageDirectory 2022-01-16 12:08:57 -08:00
PageDirectory.h Kernel: Don't access directory table of uninitialized PageDirectory 2022-01-16 12:08:57 -08: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: Initialize PhysicalRegion::m_large_zones, remove m_small_zones 2021-12-22 13:29:31 -08: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: Make PrivateInodeVMObject construction OOM-aware 2022-01-15 22:16:00 +02:00
PrivateInodeVMObject.h Kernel: Make PrivateInodeVMObject construction OOM-aware 2022-01-15 22:16:00 +02:00
Region.cpp Kernel: Implement Page Attribute Table (PAT) support and Write-Combine 2022-01-26 09:21:04 +02:00
Region.h Kernel: Implement Page Attribute Table (PAT) support and Write-Combine 2022-01-26 09:21:04 +02:00
RingBuffer.cpp Kernel: Make Memory::RingBuffer construction fallible 2022-01-21 16:27:21 +01:00
RingBuffer.h Kernel: Make Memory::RingBuffer construction fallible 2022-01-21 16:27:21 +01:00
ScatterGatherList.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
ScatterGatherList.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
ScopedAddressSpaceSwitcher.cpp Kernel: Access MemoryManager static functions statically 2021-10-02 18:16:15 +02:00
ScopedAddressSpaceSwitcher.h Kernel: Rename ProcessPagingScope => ScopedAddressSpaceSwitcher 2021-09-06 18:56:51 +02:00
SharedInodeVMObject.cpp Kernel: Make SharedInodeVMObject construction OOM-aware 2022-01-15 22:16:00 +02:00
SharedInodeVMObject.h Kernel: Make SharedInodeVMObject construction OOM-aware 2022-01-15 22:16:00 +02:00
TypedMapping.h Kernel: Make map_typed() & map_typed_writable() fallible using ErrorOr 2022-01-13 22:40:25 +01:00
VirtualRange.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
VirtualRange.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
VirtualRangeAllocator.cpp Kernel: Return EEXIST in VirtualRangeAllocator::try_allocate_specific() 2021-12-23 23:08:10 +01:00
VirtualRangeAllocator.h Kernel: Make VirtualRangeAllocator setup functions propagate errors 2021-11-18 21:11:30 +01:00
VMObject.cpp Kernel: Remove infallible VMObject resource factory functions 2022-01-15 22:16:00 +02:00
VMObject.h Kernel: Remove infallible VMObject resource factory functions 2022-01-15 22:16:00 +02:00