mirror of https://gitee.com/openkylin/linux.git
[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>
This commit is contained in:
parent
6c5240ae7f
commit
442c9137de
|
@ -164,7 +164,6 @@ static void remove_migration_pte(struct vm_area_struct *vma, unsigned long addr,
|
|||
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))
|
||||
|
|
|
@ -595,6 +595,7 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
|
|||
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 *page, struct vm_area_struct *vma,
|
|||
}
|
||||
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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue