From f45fdae9913a9d8e003cf681621e71516b2054b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Tue, 12 Nov 2024 08:50:05 +0000 Subject: Add notes on why system crashes --- arch/x86_64/include/arch/memory/paging/active_page_table.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'arch/x86_64/include') 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 c7d835a..c5b972b 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 @@ -166,8 +166,11 @@ namespace teachos::arch::memory::paging } // TODO: Flushing only specifc page does not work and cause temporary_page.map_table_frame to return an invalid // page table (Memory inside buffer shows nothing) - cpu::tlb_flush(page.start_address()); - // cpu::tlb_flush_all(); + // cpu::tlb_flush(page.start_address()); + // This is the case, because we have unmapped the active page and it is completly invalid, if we only flush one + // page, the other pages which are huge still exist in the cache and can therefore still be accessed. But because + // they are huge pages the temporary page is not mapped correctly. + cpu::tlb_flush_all(); } private: -- cgit v1.2.3