From c10c633062fafe264d6da4825382f636b8ef73b2 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:36:41 +0800 Subject: [PATCH 01/18] Fix the bug in lab3_result:vmm.c --- labcodes_answer/lab3_result/kern/mm/vmm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/labcodes_answer/lab3_result/kern/mm/vmm.c b/labcodes_answer/lab3_result/kern/mm/vmm.c index 33065c5..89bdfb8 100644 --- a/labcodes_answer/lab3_result/kern/mm/vmm.c +++ b/labcodes_answer/lab3_result/kern/mm/vmm.c @@ -419,6 +419,7 @@ do_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { } page_insert(mm->pgdir, page, addr, perm); swap_map_swappable(mm, addr, page, 1); + page->pra_vaddr = addr; } else { cprintf("no swap_init_ok but ptep is %x, failed\n",*ptep); From 1e3bab2bab0f515bb6b72978a5a7b35876b08374 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:37:10 +0800 Subject: [PATCH 02/18] Fix the bug in lab4_result:vmm.c --- labcodes_answer/lab4_result/kern/mm/vmm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/labcodes_answer/lab4_result/kern/mm/vmm.c b/labcodes_answer/lab4_result/kern/mm/vmm.c index 5881a83..1c33ba2 100644 --- a/labcodes_answer/lab4_result/kern/mm/vmm.c +++ b/labcodes_answer/lab4_result/kern/mm/vmm.c @@ -420,6 +420,7 @@ do_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { } page_insert(mm->pgdir, page, addr, perm); swap_map_swappable(mm, addr, page, 1); + page->pra_vaddr = addr; } else { cprintf("no swap_init_ok but ptep is %x, failed\n",*ptep); From 09c22d00a04116b174681b36ad9805a0eef1db43 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:37:23 +0800 Subject: [PATCH 03/18] Fix the bug in lab5_result:vmm.c --- labcodes_answer/lab5_result/kern/mm/vmm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/labcodes_answer/lab5_result/kern/mm/vmm.c b/labcodes_answer/lab5_result/kern/mm/vmm.c index b54a8ae..e318035 100644 --- a/labcodes_answer/lab5_result/kern/mm/vmm.c +++ b/labcodes_answer/lab5_result/kern/mm/vmm.c @@ -527,6 +527,7 @@ do_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { } page_insert(mm->pgdir, page, addr, perm); swap_map_swappable(mm, addr, page, 1); + page->pra_vaddr = addr; } ret = 0; failed: From bded0c9515c47f941a20b17877382297560fa8cd Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:37:31 +0800 Subject: [PATCH 04/18] Fix the bug in lab6_result:vmm.c --- labcodes_answer/lab6_result/kern/mm/vmm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/labcodes_answer/lab6_result/kern/mm/vmm.c b/labcodes_answer/lab6_result/kern/mm/vmm.c index 877b033..ee8cc5d 100644 --- a/labcodes_answer/lab6_result/kern/mm/vmm.c +++ b/labcodes_answer/lab6_result/kern/mm/vmm.c @@ -527,6 +527,7 @@ do_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { } page_insert(mm->pgdir, page, addr, perm); swap_map_swappable(mm, addr, page, 1); + page->pra_vaddr = addr; } ret = 0; failed: From e112eacf4daa3fb9d1ea695895bc47ee9d4229ea Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:37:37 +0800 Subject: [PATCH 05/18] Fix the bug in lab7_result:vmm.c --- labcodes_answer/lab7_result/kern/mm/vmm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/labcodes_answer/lab7_result/kern/mm/vmm.c b/labcodes_answer/lab7_result/kern/mm/vmm.c index 04f514d..603d923 100644 --- a/labcodes_answer/lab7_result/kern/mm/vmm.c +++ b/labcodes_answer/lab7_result/kern/mm/vmm.c @@ -536,6 +536,7 @@ do_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { } page_insert(mm->pgdir, page, addr, perm); swap_map_swappable(mm, addr, page, 1); + page->pra_vaddr = addr; } ret = 0; failed: From f4972793feb7ab16f8ba5d2730a733d72d128ca5 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:37:47 +0800 Subject: [PATCH 06/18] Fix the bug in lab8_result:vmm.c --- labcodes_answer/lab8_result/kern/mm/vmm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/labcodes_answer/lab8_result/kern/mm/vmm.c b/labcodes_answer/lab8_result/kern/mm/vmm.c index 9b12b3f..bac5fa2 100644 --- a/labcodes_answer/lab8_result/kern/mm/vmm.c +++ b/labcodes_answer/lab8_result/kern/mm/vmm.c @@ -536,6 +536,7 @@ do_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { } page_insert(mm->pgdir, page, addr, perm); swap_map_swappable(mm, addr, page, 1); + page->pra_vaddr = addr; } ret = 0; failed: From 0844827afaa9a52d4f6d8b66fe99ce135449accc Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:38:51 +0800 Subject: [PATCH 07/18] Add tests in lab3:swap_fifo.c --- labcodes/lab3/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes/lab3/kern/mm/swap_fifo.c b/labcodes/lab3/kern/mm/swap_fifo.c index 4cb00c1..3e302f7 100644 --- a/labcodes/lab3/kern/mm/swap_fifo.c +++ b/labcodes/lab3/kern/mm/swap_fifo.c @@ -102,6 +102,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From b25569ee33f97b7b67229a6b02ad1ff9a32946fa Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:39:20 +0800 Subject: [PATCH 08/18] Add tests in lab4:swap_fifo.c --- labcodes/lab4/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes/lab4/kern/mm/swap_fifo.c b/labcodes/lab4/kern/mm/swap_fifo.c index 4cb00c1..3e302f7 100644 --- a/labcodes/lab4/kern/mm/swap_fifo.c +++ b/labcodes/lab4/kern/mm/swap_fifo.c @@ -102,6 +102,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From 25e180d5159bc3f9c8b4eb036e8cf87946d45003 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:39:26 +0800 Subject: [PATCH 09/18] Add tests in lab5:swap_fifo.c --- labcodes/lab5/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes/lab5/kern/mm/swap_fifo.c b/labcodes/lab5/kern/mm/swap_fifo.c index 4cb00c1..3e302f7 100644 --- a/labcodes/lab5/kern/mm/swap_fifo.c +++ b/labcodes/lab5/kern/mm/swap_fifo.c @@ -102,6 +102,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From 5b87fa766e621a08ddfabd57f48d5cb8f6d59a7c Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:39:30 +0800 Subject: [PATCH 10/18] Add tests in lab6:swap_fifo.c --- labcodes/lab6/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes/lab6/kern/mm/swap_fifo.c b/labcodes/lab6/kern/mm/swap_fifo.c index 4cb00c1..3e302f7 100644 --- a/labcodes/lab6/kern/mm/swap_fifo.c +++ b/labcodes/lab6/kern/mm/swap_fifo.c @@ -102,6 +102,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From 898573d0e2645cea6041e1129d04ed096ae86492 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:39:35 +0800 Subject: [PATCH 11/18] Add tests in lab7:swap_fifo.c --- labcodes/lab7/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes/lab7/kern/mm/swap_fifo.c b/labcodes/lab7/kern/mm/swap_fifo.c index 4cb00c1..3e302f7 100644 --- a/labcodes/lab7/kern/mm/swap_fifo.c +++ b/labcodes/lab7/kern/mm/swap_fifo.c @@ -102,6 +102,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From c2eeba82530b82b0edb68a11f9b7d52e12480498 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:39:41 +0800 Subject: [PATCH 12/18] Add tests in lab8:swap_fifo.c --- labcodes/lab8/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes/lab8/kern/mm/swap_fifo.c b/labcodes/lab8/kern/mm/swap_fifo.c index 4cb00c1..3e302f7 100644 --- a/labcodes/lab8/kern/mm/swap_fifo.c +++ b/labcodes/lab8/kern/mm/swap_fifo.c @@ -102,6 +102,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From b938163e3f0b4e14acbb49e59a98a2e854549eb4 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:40:00 +0800 Subject: [PATCH 13/18] Add tests in lab3_result:swap_fifo.c --- labcodes_answer/lab3_result/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes_answer/lab3_result/kern/mm/swap_fifo.c b/labcodes_answer/lab3_result/kern/mm/swap_fifo.c index ae6caf3..4f9dc8f 100644 --- a/labcodes_answer/lab3_result/kern/mm/swap_fifo.c +++ b/labcodes_answer/lab3_result/kern/mm/swap_fifo.c @@ -110,6 +110,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From dd1aea76416fda01df5528a641b4539239e6ddfb Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:40:27 +0800 Subject: [PATCH 14/18] Add tests in lab4_result:swap_fifo.c --- labcodes_answer/lab4_result/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes_answer/lab4_result/kern/mm/swap_fifo.c b/labcodes_answer/lab4_result/kern/mm/swap_fifo.c index ae6caf3..4f9dc8f 100644 --- a/labcodes_answer/lab4_result/kern/mm/swap_fifo.c +++ b/labcodes_answer/lab4_result/kern/mm/swap_fifo.c @@ -110,6 +110,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From 17bd75226ab1f791f11c8cd7adb9bdf8cea671cb Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:40:48 +0800 Subject: [PATCH 15/18] Add tests in lab5_result:swap_fifo.c --- labcodes_answer/lab5_result/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes_answer/lab5_result/kern/mm/swap_fifo.c b/labcodes_answer/lab5_result/kern/mm/swap_fifo.c index ae6caf3..4f9dc8f 100644 --- a/labcodes_answer/lab5_result/kern/mm/swap_fifo.c +++ b/labcodes_answer/lab5_result/kern/mm/swap_fifo.c @@ -110,6 +110,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From 44fc7502e2de10048c34494837dc284a45bdba10 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:40:53 +0800 Subject: [PATCH 16/18] Add tests in lab6_result:swap_fifo.c --- labcodes_answer/lab6_result/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes_answer/lab6_result/kern/mm/swap_fifo.c b/labcodes_answer/lab6_result/kern/mm/swap_fifo.c index ae6caf3..4f9dc8f 100644 --- a/labcodes_answer/lab6_result/kern/mm/swap_fifo.c +++ b/labcodes_answer/lab6_result/kern/mm/swap_fifo.c @@ -110,6 +110,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From 628a8c76e827daddd2e979adab8d060b89bea471 Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:41:01 +0800 Subject: [PATCH 17/18] Add tests in lab7_result:swap_fifo.c --- labcodes_answer/lab7_result/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes_answer/lab7_result/kern/mm/swap_fifo.c b/labcodes_answer/lab7_result/kern/mm/swap_fifo.c index ae6caf3..4f9dc8f 100644 --- a/labcodes_answer/lab7_result/kern/mm/swap_fifo.c +++ b/labcodes_answer/lab7_result/kern/mm/swap_fifo.c @@ -110,6 +110,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; } From c40896dfedb7b872d988cb3c3d7d63086ba42a5d Mon Sep 17 00:00:00 2001 From: ArchStacker Date: Sun, 10 May 2015 00:41:07 +0800 Subject: [PATCH 18/18] Add tests in lab8_result:swap_fifo.c --- labcodes_answer/lab8_result/kern/mm/swap_fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/labcodes_answer/lab8_result/kern/mm/swap_fifo.c b/labcodes_answer/lab8_result/kern/mm/swap_fifo.c index ae6caf3..4f9dc8f 100644 --- a/labcodes_answer/lab8_result/kern/mm/swap_fifo.c +++ b/labcodes_answer/lab8_result/kern/mm/swap_fifo.c @@ -110,6 +110,13 @@ _fifo_check_swap(void) { cprintf("write Virt Page d in fifo_check_swap\n"); *(unsigned char *)0x4000 = 0x0d; assert(pgfault_num==9); + cprintf("write Virt Page e in fifo_check_swap\n"); + *(unsigned char *)0x5000 = 0x0e; + assert(pgfault_num==10); + cprintf("write Virt Page a in fifo_check_swap\n"); + assert(*(unsigned char *)0x1000 == 0x0a); + *(unsigned char *)0x1000 = 0x0a; + assert(pgfault_num==11); return 0; }