aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
diff options
context:
space:
mode:
authorNamhoon Kim <namhoonk@cs.unc.edu>2016-09-30 02:06:05 -0400
committerNamhoon Kim <namhoonk@cs.unc.edu>2016-09-30 02:06:05 -0400
commit1735527cd6d215863dae7d4df8c7267d4337bb5d (patch)
treeab2354eb6b8959f130950374c46f48d1545469e2 /litmus
parent87c96270aa53f5c1c67fca941a2a6061178cb0a0 (diff)
seems to work
Diffstat (limited to 'litmus')
-rw-r--r--litmus/litmus.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/litmus/litmus.c b/litmus/litmus.c
index d31138c9b9a6..6088de312bb5 100644
--- a/litmus/litmus.c
+++ b/litmus/litmus.c
@@ -407,10 +407,12 @@ asmlinkage long sys_set_page_color(int cpu)
407 continue; 407 continue;
408 } 408 }
409 409
410 TRACE_TASK(current, "addr: %08x, pfn: %ld, _mapcount: %d, _count: %d flags: %s%s%s\n", vma_itr->vm_start + PAGE_SIZE*i, page_to_pfn(old_page), page_mapcount(old_page), page_count(old_page), vma_itr->vm_flags&VM_READ?"r":"-", vma_itr->vm_flags&VM_WRITE?"w":"-", vma_itr->vm_flags&VM_EXEC?"x":"-"); 410 TRACE_TASK(current, "addr: %08x, pfn: %05lx, _mapcount: %d, _count: %d flags: %s%s%s\n", vma_itr->vm_start + PAGE_SIZE*i, page_to_pfn(old_page), page_mapcount(old_page), page_count(old_page), vma_itr->vm_flags&VM_READ?"r":"-", vma_itr->vm_flags&VM_WRITE?"w":"-", vma_itr->vm_flags&VM_EXEC?"x":"-");
411 pages_in_vma++; 411 pages_in_vma++;
412 412
413// for simple debug
413 if (page_count(old_page) > 2 && vma_itr->vm_file != NULL && !(vma_itr->vm_flags&VM_WRITE)) { 414 if (page_count(old_page) > 2 && vma_itr->vm_file != NULL && !(vma_itr->vm_flags&VM_WRITE)) {
415 //if (page_count(old_page) < 10 && page_count(old_page) > 3 && vma_itr->vm_file != NULL && !(vma_itr->vm_flags&VM_WRITE)) {
414 struct shared_lib_page *lib_page; 416 struct shared_lib_page *lib_page;
415 int is_exist = 0; 417 int is_exist = 0;
416 418
@@ -433,10 +435,10 @@ asmlinkage long sys_set_page_color(int cpu)
433 lib_page->master_pfn = page_to_pfn(old_page); 435 lib_page->master_pfn = page_to_pfn(old_page);
434 lib_page->r_pfn = INVALID_PFN; 436 lib_page->r_pfn = INVALID_PFN;
435 list_add_tail(&lib_page->list, &shared_lib_pages); 437 list_add_tail(&lib_page->list, &shared_lib_pages);
436 TRACE_TASK(current, "NEW PAGE %ld ADDED.\n", lib_page->master_pfn); 438 TRACE_TASK(current, "NEW PAGE %05lx ADDED.\n", lib_page->master_pfn);
437 } 439 }
438 else { 440 else {
439 TRACE_TASK(current, "FOUND PAGE %ld in the list.\n", lib_page->master_pfn); 441 TRACE_TASK(current, "FOUND PAGE %05lx in the list.\n", lib_page->master_pfn);
440 } 442 }
441 443
442 /* add to task_shared_pagelist */ 444 /* add to task_shared_pagelist */
@@ -445,7 +447,7 @@ asmlinkage long sys_set_page_color(int cpu)
445 list_add_tail(&old_page->lru, &task_shared_pagelist); 447 list_add_tail(&old_page->lru, &task_shared_pagelist);
446 inc_zone_page_state(old_page, NR_ISOLATED_ANON + !PageSwapBacked(old_page)); 448 inc_zone_page_state(old_page, NR_ISOLATED_ANON + !PageSwapBacked(old_page));
447 nr_shared_pages++; 449 nr_shared_pages++;
448 TRACE_TASK(current, "SHARED isolate_lur_page success\n"); 450 TRACE_TASK(current, "SHARED isolate_lru_page success\n");
449 } else { 451 } else {
450 TRACE_TASK(current, "SHARED isolate_lru_page failed\n"); 452 TRACE_TASK(current, "SHARED isolate_lru_page failed\n");
451 } 453 }
@@ -459,7 +461,6 @@ asmlinkage long sys_set_page_color(int cpu)
459 nr_pages++; 461 nr_pages++;
460 } else { 462 } else {
461 TRACE_TASK(current, "isolate_lru_page failed\n"); 463 TRACE_TASK(current, "isolate_lru_page failed\n");
462 TRACE_TASK(current, "page_lru = %d PageLRU = %d\n", page_lru(old_page), PageLRU(old_page));
463 nr_failed++; 464 nr_failed++;
464 } 465 }
465 //printk(KERN_INFO "PRIVATE _mapcount = %d, _count = %d\n", page_mapcount(old_page), page_count(old_page)); 466 //printk(KERN_INFO "PRIVATE _mapcount = %d, _count = %d\n", page_mapcount(old_page), page_count(old_page));
@@ -546,7 +547,7 @@ asmlinkage long sys_set_page_color(int cpu)
546 rcu_read_lock(); 547 rcu_read_lock();
547 list_for_each_entry(lpage, &shared_lib_pages, list) 548 list_for_each_entry(lpage, &shared_lib_pages, list)
548 { 549 {
549 TRACE_TASK(current, "master_PFN = %ld r_PFN = %ld PageSwapCache=%d\n", lpage->master_pfn, lpage->r_pfn, PageSwapCache(lpage->master_page)); 550 TRACE_TASK(current, "master_PFN = %05lx r_PFN = %05lx PageSwapCache=%d\n", lpage->master_pfn, lpage->r_pfn, PageSwapCache(lpage->master_page));
550 } 551 }
551 rcu_read_unlock(); 552 rcu_read_unlock();
552 } 553 }
@@ -577,7 +578,7 @@ asmlinkage long sys_set_page_color(int cpu)
577 continue; 578 continue;
578 } 579 }
579 580
580 TRACE_TASK(current, "addr: %08x, pfn: %ld, _mapcount: %d, _count: %d\n", vma_itr->vm_start + PAGE_SIZE*i, __page_to_pfn(old_page), page_mapcount(old_page), page_count(old_page)); 581 TRACE_TASK(current, "addr: %08x, pfn: %05lx, _mapcount: %d, _count: %d\n", vma_itr->vm_start + PAGE_SIZE*i, __page_to_pfn(old_page), page_mapcount(old_page), page_count(old_page));
581 put_page(old_page); 582 put_page(old_page);
582 } 583 }
583 584
@@ -593,7 +594,6 @@ asmlinkage long sys_set_page_color(int cpu)
593asmlinkage long sys_test_call(unsigned int param) 594asmlinkage long sys_test_call(unsigned int param)
594{ 595{
595 long ret = 0; 596 long ret = 0;
596 unsigned long flags;
597 struct vm_area_struct *vma_itr = NULL; 597 struct vm_area_struct *vma_itr = NULL;
598 598
599 TRACE_CUR("test_call param = %d\n", param); 599 TRACE_CUR("test_call param = %d\n", param);
@@ -604,7 +604,7 @@ asmlinkage long sys_test_call(unsigned int param)
604 while (vma_itr != NULL) { 604 while (vma_itr != NULL) {
605 int i, num_pages; 605 int i, num_pages;
606 struct page* old_page; 606 struct page* old_page;
607 TRACE_TASK(current, "--------------------------------------------\n"); 607 TRACE_TASK(current, "------------------------------------------------------\n");
608 TRACE_TASK(current, "vm_start : %lx\n", vma_itr->vm_start); 608 TRACE_TASK(current, "vm_start : %lx\n", vma_itr->vm_start);
609 TRACE_TASK(current, "vm_end : %lx\n", vma_itr->vm_end); 609 TRACE_TASK(current, "vm_end : %lx\n", vma_itr->vm_end);
610 TRACE_TASK(current, "vm_flags : %lx\n", vma_itr->vm_flags); 610 TRACE_TASK(current, "vm_flags : %lx\n", vma_itr->vm_flags);
@@ -635,12 +635,12 @@ asmlinkage long sys_test_call(unsigned int param)
635 continue; 635 continue;
636 } 636 }
637 637
638 TRACE_TASK(current, "addr: %08x, pfn: %ld, _mapcount: %d, _count: %d flags: %s%s%s\n", vma_itr->vm_start + PAGE_SIZE*i, page_to_pfn(old_page), page_mapcount(old_page), page_count(old_page), vma_itr->vm_flags&VM_READ?"r":"-", vma_itr->vm_flags&VM_WRITE?"w":"-", vma_itr->vm_flags&VM_EXEC?"x":"-"); 638 TRACE_TASK(current, "addr: %08x, pfn: %05lx, _mapcount: %d, _count: %d flags: %s%s%s\n", vma_itr->vm_start + PAGE_SIZE*i, page_to_pfn(old_page), page_mapcount(old_page), page_count(old_page), vma_itr->vm_flags&VM_READ?"r":"-", vma_itr->vm_flags&VM_WRITE?"w":"-", vma_itr->vm_flags&VM_EXEC?"x":"-");
639 put_page(old_page); 639 put_page(old_page);
640 } 640 }
641 vma_itr = vma_itr->vm_next; 641 vma_itr = vma_itr->vm_next;
642 } 642 }
643 printk(KERN_INFO "--------------------------------------------\n"); 643 TRACE_TASK(current, "------------------------------------------------------\n");
644 up_read(&current->mm->mmap_sem); 644 up_read(&current->mm->mmap_sem);
645 } 645 }
646 else if (param == 1) { 646 else if (param == 1) {