mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-03 13:02:09 +02:00
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.
This commit is contained in:
Notes:
sideshowbarker
2024-07-17 11:30:05 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/a838fdfd88
@@ -91,9 +91,6 @@ struct MemoryManagerData {
|
||||
|
||||
Spinlock m_quickmap_in_use { LockRank::None };
|
||||
u32 m_quickmap_prev_flags;
|
||||
|
||||
PhysicalAddress m_last_quickmap_pd;
|
||||
PhysicalAddress m_last_quickmap_pt;
|
||||
};
|
||||
|
||||
// NOLINTNEXTLINE(readability-redundant-declaration) FIXME: Why do we declare this here *and* in Thread.h?
|
||||
|
||||
Reference in New Issue
Block a user