aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-06-23 05:03:38 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-23 10:42:51 -0400
commit442c9137de8d769053e81d325709dca72f0b5e44 (patch)
tree200e5ace0310755d88dd1c7597cc0bb540264fe1
parent6c5240ae7f48c83fcaa8e24fa63e7eb09aba5651 (diff)
[PATCH] More page migration: do not inc/dec rss counters
If we install a migration entry then the rss not really decreases since the page is just moved somewhere else. We can save ourselves the work of decrementing and later incrementing which will just eventually cause cacheline bouncing. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--mm/migrate.c1
-rw-r--r--mm/rmap.c2
2 files changed, 1 insertions, 2 deletions
diff --git a/mm/migrate.c b/mm/migrate.c
index 8f91463eab4e..96b9546e69e0 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -164,7 +164,6 @@ static void remove_migration_pte(struct vm_area_struct *vma, unsigned long addr,
164 if (!is_migration_entry(entry) || migration_entry_to_page(entry) != old) 164 if (!is_migration_entry(entry) || migration_entry_to_page(entry) != old)
165 goto out; 165 goto out;
166 166
167 inc_mm_counter(mm, anon_rss);
168 get_page(new); 167 get_page(new);
169 pte = pte_mkold(mk_pte(new, vma->vm_page_prot)); 168 pte = pte_mkold(mk_pte(new, vma->vm_page_prot));
170 if (is_write_migration_entry(entry)) 169 if (is_write_migration_entry(entry))
diff --git a/mm/rmap.c b/mm/rmap.c
index a53a10b93ecf..05d6d73a692d 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -595,6 +595,7 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
595 list_add(&mm->mmlist, &init_mm.mmlist); 595 list_add(&mm->mmlist, &init_mm.mmlist);
596 spin_unlock(&mmlist_lock); 596 spin_unlock(&mmlist_lock);
597 } 597 }
598 dec_mm_counter(mm, anon_rss);
598 } else { 599 } else {
599 /* 600 /*
600 * Store the pfn of the page in a special migration 601 * Store the pfn of the page in a special migration
@@ -606,7 +607,6 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
606 } 607 }
607 set_pte_at(mm, address, pte, swp_entry_to_pte(entry)); 608 set_pte_at(mm, address, pte, swp_entry_to_pte(entry));
608 BUG_ON(pte_file(*pte)); 609 BUG_ON(pte_file(*pte));
609 dec_mm_counter(mm, anon_rss);
610 } else 610 } else
611 dec_mm_counter(mm, file_rss); 611 dec_mm_counter(mm, file_rss);
612 612