diff options
| author | Matteo Gmür <matteo.gmuer1@ost.ch> | 2024-11-24 09:22:23 +0000 |
|---|---|---|
| committer | Matteo Gmür <matteo.gmuer1@ost.ch> | 2024-11-24 09:22:23 +0000 |
| commit | 641f20fd782deb6d9e1e1b9996005ad893028744 (patch) | |
| tree | 4c24cd11fb1dc88bd415904a9571771b8a187a08 /arch | |
| parent | 4c44f822eefa743649693e0a49a978291925ddff (diff) | |
| download | teachos-641f20fd782deb6d9e1e1b9996005ad893028744.tar.xz teachos-641f20fd782deb6d9e1e1b9996005ad893028744.zip | |
Adjust notes on actual unmap implementation
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86_64/include/arch/memory/paging/active_page_table.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/x86_64/include/arch/memory/paging/active_page_table.hpp b/arch/x86_64/include/arch/memory/paging/active_page_table.hpp index 88c1c82..4687209 100644 --- a/arch/x86_64/include/arch/memory/paging/active_page_table.hpp +++ b/arch/x86_64/include/arch/memory/paging/active_page_table.hpp @@ -121,8 +121,12 @@ namespace teachos::arch::memory::paging /** * @brief Unmaps the virtual page from the previously mapped to physical frame and resets the flags. * - * @note Deallocates and unmaps the entry in every page level if this page was the last one up to level 4 and - * ensures to clear the Translation Lookaside Buffer, so that the unmapped value is removed from cache as well. + * @note For the unmap function to deallocates and unmaps correctly, the entry in every page level if this page was + * the last one up to level 4 should be unmapped and ensured to clear the Translation Lookaside Buffer, so that the + * unmapped value is removed from cache as well. This is currently not done and instead we only dallocate and unmap + * the level 1 page table entry, this is the case because it conflicts with our recursive mapping for the temporary + * page, which requires the other page table entries to walk to the actual level 4 page table. If we remove all page + * table entries beforehand, we therefore can not remap the kernel anymore. * * @tparam T Type constraint of the allocator, being that is follows the given concept and contains an allocate and * deallocate method. |
