Commit 2f55f070 authored by Miaohe Lin's avatar Miaohe Lin Committed by akpm

mm/khugepaged: minor cleanup for collapse_file

nr_none is always 0 for non-shmem case because the page can be read from
the backend store.  So when nr_none !  = 0, it must be in is_shmem case. 
Also only adjust the nrpages and uncharge shmem when nr_none != 0 to save
cpu cycles.

Link: https://lkml.kernel.org/r/20220625092816.4856-5-linmiaohe@huawei.comSigned-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
Reviewed-by: default avatarZach O'Keefe <zokeefe@google.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: NeilBrown <neilb@suse.de>
Cc: Peter Xu <peterx@redhat.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Yang Shi <shy828301@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 36ee2c78
...@@ -1881,7 +1881,7 @@ static void collapse_file(struct mm_struct *mm, ...@@ -1881,7 +1881,7 @@ static void collapse_file(struct mm_struct *mm,
if (nr_none) { if (nr_none) {
__mod_lruvec_page_state(new_page, NR_FILE_PAGES, nr_none); __mod_lruvec_page_state(new_page, NR_FILE_PAGES, nr_none);
if (is_shmem) /* nr_none is always 0 for non-shmem. */
__mod_lruvec_page_state(new_page, NR_SHMEM, nr_none); __mod_lruvec_page_state(new_page, NR_SHMEM, nr_none);
} }
...@@ -1946,10 +1946,10 @@ static void collapse_file(struct mm_struct *mm, ...@@ -1946,10 +1946,10 @@ static void collapse_file(struct mm_struct *mm,
/* Something went wrong: roll back page cache changes */ /* Something went wrong: roll back page cache changes */
xas_lock_irq(&xas); xas_lock_irq(&xas);
if (nr_none) {
mapping->nrpages -= nr_none; mapping->nrpages -= nr_none;
if (is_shmem)
shmem_uncharge(mapping->host, nr_none); shmem_uncharge(mapping->host, nr_none);
}
xas_set(&xas, start); xas_set(&xas, start);
xas_for_each(&xas, page, end - 1) { xas_for_each(&xas, page, end - 1) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment