diff options
author | Namhoon Kim <namhoonk@cs.unc.edu> | 2016-09-30 02:06:05 -0400 |
---|---|---|
committer | Namhoon Kim <namhoonk@cs.unc.edu> | 2016-09-30 02:06:05 -0400 |
commit | 1735527cd6d215863dae7d4df8c7267d4337bb5d (patch) | |
tree | ab2354eb6b8959f130950374c46f48d1545469e2 /litmus | |
parent | 87c96270aa53f5c1c67fca941a2a6061178cb0a0 (diff) |
seems to work
Diffstat (limited to 'litmus')
-rw-r--r-- | litmus/litmus.c | 24 |
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) | |||
593 | asmlinkage long sys_test_call(unsigned int param) | 594 | asmlinkage 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(¤t->mm->mmap_sem); | 644 | up_read(¤t->mm->mmap_sem); |
645 | } | 645 | } |
646 | else if (param == 1) { | 646 | else if (param == 1) { |