[kernel:page_fault] add logging for new/swapped pages on page mapping
This commit is contained in:
parent
b1b2d6903f
commit
92759f73a2
30
src/kernel.c
30
src/kernel.c
|
@ -141,11 +141,18 @@ KERNEL_page_fault(struct PageTableEntry *pt, size_t page_no)
|
||||||
if (first_free_page) {
|
if (first_free_page) {
|
||||||
free_pages_cnt--;
|
free_pages_cnt--;
|
||||||
#if DISABLE_LOGGING != 1
|
#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
|
#endif
|
||||||
pt[page_no].ppn = first_free_page->ppn;
|
pt[page_no].ppn = first_free_page->ppn;
|
||||||
pt[page_no].p = 1;
|
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->busy_flag = 1;
|
||||||
first_free_page->pt = pt;
|
first_free_page->pt = pt;
|
||||||
first_free_page->pt_index = page_no;
|
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].p = 1;
|
||||||
pt[page_no].ppn = first_busy_page->ppn;
|
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
|
// move hand to next physical page
|
||||||
first_busy_page = first_busy_page->next;
|
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].p = 1;
|
||||||
pt[page_no].ppn = first_busy_page->ppn;
|
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;
|
first_busy_page = first_busy_page->next;
|
||||||
|
|
||||||
goto page_replacement_resolved;
|
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].p = 1;
|
||||||
pt[page_no].ppn = first_busy_page->ppn;
|
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
|
// move hand to next physical page
|
||||||
first_busy_page = first_busy_page->next;
|
first_busy_page = first_busy_page->next;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue