From 92759f73a23e7b5fb8b3807fcc50c84fe7c8766d Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 18 Mar 2025 20:13:16 +0200 Subject: [PATCH] [kernel:page_fault] add logging for new/swapped pages on page mapping --- src/kernel.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/kernel.c b/src/kernel.c index 9bbe1c8..d8f0a95 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -141,11 +141,18 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) if (first_free_page) { free_pages_cnt--; #if DISABLE_LOGGING != 1 - printf("[kernel:page_fault] Found free page #%d, using it\n", first_free_page->ppn); + printf("[kernel:page_fault:free] Found free page #%d, using it\n", first_free_page->ppn); #endif pt[page_no].ppn = first_free_page->ppn; pt[page_no].p = 1; +#if DISABLE_LOGGING != 1 + if (pt[page_no].m) + printf("[kernel:page_fault:free] Loading page from swap\n"); + else + printf("[kernel:page_fault:free] Creating fresh page\n"); +#endif + first_free_page->busy_flag = 1; first_free_page->pt = pt; first_free_page->pt_index = page_no; @@ -198,6 +205,13 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) pt[page_no].p = 1; pt[page_no].ppn = first_busy_page->ppn; +#if DISABLE_LOGGING != 1 + if (pt[page_no].m) + printf("[kernel:page_fault:random] Loading page from swap\n"); + else + printf("[kernel:page_fault:random] Creating fresh page\n"); +#endif + // move hand to next physical page first_busy_page = first_busy_page->next; @@ -228,6 +242,13 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) pt[page_no].p = 1; pt[page_no].ppn = first_busy_page->ppn; +#if DISABLE_LOGGING != 1 + if (pt[page_no].m) + printf("[kernel:page_fault:wsclock] Loading page from swap\n"); + else + printf("[kernel:page_fault:wsclock] Creating fresh page\n"); +#endif + first_busy_page = first_busy_page->next; goto page_replacement_resolved; @@ -257,6 +278,13 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no) pt[page_no].p = 1; pt[page_no].ppn = first_busy_page->ppn; +#if DISABLE_LOGGING != 1 + if (pt[page_no].m) + printf("[kernel:page_fault:random] Loading page from swap\n"); + else + printf("[kernel:page_fault:random] Creating fresh page\n"); +#endif + // move hand to next physical page first_busy_page = first_busy_page->next;