aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
diff options
context:
space:
mode:
authorNamhoon Kim <namhoonk@cs.unc.edu>2016-09-30 04:15:27 -0400
committerNamhoon Kim <namhoonk@cs.unc.edu>2016-09-30 04:15:27 -0400
commit4172fff1a3870af7d65675e05eb0b7aba3804ea8 (patch)
tree07a9a55df4a74622f99aa15841b8513341d7399b /litmus
parent267b5fb8e3786eee621d434e4892020edd0fdf72 (diff)
Support Multiple replica
Diffstat (limited to 'litmus')
-rw-r--r--litmus/litmus.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/litmus/litmus.c b/litmus/litmus.c
index 652e70df69bb..11e4c5da9c10 100644
--- a/litmus/litmus.c
+++ b/litmus/litmus.c
@@ -429,11 +429,16 @@ asmlinkage long sys_set_page_color(int cpu)
429 rcu_read_unlock(); 429 rcu_read_unlock();
430 430
431 if (is_exist == 0) { 431 if (is_exist == 0) {
432 int cpu_i;
432 lib_page = kmalloc(sizeof(struct shared_lib_page), GFP_KERNEL); 433 lib_page = kmalloc(sizeof(struct shared_lib_page), GFP_KERNEL);
433 lib_page->master_page = old_page; 434 lib_page->master_page = old_page;
434 lib_page->r_page = NULL; 435 //lib_page->r_page = NULL;
435 lib_page->master_pfn = page_to_pfn(old_page); 436 lib_page->master_pfn = page_to_pfn(old_page);
436 lib_page->r_pfn = INVALID_PFN; 437 //lib_page->r_pfn = INVALID_PFN;
438 for (cpu_i = 0; cpu_i < NR_CPUS; cpu_i++) {
439 lib_page->r_page[cpu_i] = NULL;
440 lib_page->r_pfn[cpu_i] = INVALID_PFN;
441 }
437 list_add_tail(&lib_page->list, &shared_lib_pages); 442 list_add_tail(&lib_page->list, &shared_lib_pages);
438 TRACE_TASK(current, "NEW PAGE %05lx ADDED.\n", lib_page->master_pfn); 443 TRACE_TASK(current, "NEW PAGE %05lx ADDED.\n", lib_page->master_pfn);
439 } 444 }
@@ -551,7 +556,7 @@ asmlinkage long sys_set_page_color(int cpu)
551 rcu_read_lock(); 556 rcu_read_lock();
552 list_for_each_entry(lpage, &shared_lib_pages, list) 557 list_for_each_entry(lpage, &shared_lib_pages, list)
553 { 558 {
554 TRACE_TASK(current, "master_PFN = %05lx r_PFN = %05lx PageSwapCache=%d\n", lpage->master_pfn, lpage->r_pfn, PageSwapCache(lpage->master_page)); 559 TRACE_TASK(current, "master_PFN = %05lx r_PFN = %05lx, %05lx, %05lx, %05lx\n", lpage->master_pfn, lpage->r_pfn[0], lpage->r_pfn[1], lpage->r_pfn[2], lpage->r_pfn[3]);
555 } 560 }
556 rcu_read_unlock(); 561 rcu_read_unlock();
557 } 562 }