From: Christoph Lameter 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 Signed-off-by: Andrew Morton --- mm/migrate.c | 1 - mm/rmap.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff -puN mm/migrate.c~more-page-migration-do-not-inc-dec-rss-counters mm/migrate.c --- devel/mm/migrate.c~more-page-migration-do-not-inc-dec-rss-counters 2006-05-11 15:18:46.000000000 -0700 +++ devel-akpm/mm/migrate.c 2006-05-11 15:18:46.000000000 -0700 @@ -164,7 +164,6 @@ static void remove_migration_pte(struct if (!is_migration_entry(entry) || migration_entry_to_page(entry) != old) goto out; - inc_mm_counter(mm, anon_rss); get_page(new); pte = pte_mkold(mk_pte(new, vma->vm_page_prot)); if (is_write_migration_entry(entry)) diff -puN mm/rmap.c~more-page-migration-do-not-inc-dec-rss-counters mm/rmap.c --- devel/mm/rmap.c~more-page-migration-do-not-inc-dec-rss-counters 2006-05-11 15:18:46.000000000 -0700 +++ devel-akpm/mm/rmap.c 2006-05-11 15:18:46.000000000 -0700 @@ -595,6 +595,7 @@ static int try_to_unmap_one(struct page list_add(&mm->mmlist, &init_mm.mmlist); spin_unlock(&mmlist_lock); } + dec_mm_counter(mm, anon_rss); } else { /* * Store the pfn of the page in a special migration @@ -606,7 +607,6 @@ static int try_to_unmap_one(struct page } set_pte_at(mm, address, pte, swp_entry_to_pte(entry)); BUG_ON(pte_file(*pte)); - dec_mm_counter(mm, anon_rss); } else dec_mm_counter(mm, file_rss); _