From ca354c677e61863d91d2ca266eeee3ba567769a3 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 18 Mar 2025 20:22:26 +0200 Subject: [PATCH] [kernel:page_fault] update last_accessed physical page timestamp after it has been loaded due to a page fault --- src/kernel.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/kernel.c b/src/kernel.c index d8f0a95..ea87667 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -156,6 +156,7 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) first_free_page->busy_flag = 1; first_free_page->pt = pt; first_free_page->pt_index = page_no; + first_free_page->last_accessed = system_time; // ---- free list -> busy list ---- struct PhysPage *this_page = first_free_page; @@ -239,6 +240,8 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) first_busy_page->pt[first_busy_page->pt_index].p = 0; first_busy_page->pt = pt; first_busy_page->pt_index = page_no; + first_busy_page->last_accessed = system_time; + pt[page_no].p = 1; pt[page_no].ppn = first_busy_page->ppn; @@ -273,6 +276,7 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) // update physical page data first_busy_page->pt = pt; first_busy_page->pt_index = page_no; + first_busy_page->last_accessed = system_time; // update PTE data pt[page_no].p = 1;