mm/khugepaged: minor cleanup for collapse_file
authorMiaohe Lin <linmiaohe@huawei.com>
Sat, 25 Jun 2022 09:28:13 +0000 (17:28 +0800)
committerakpm <akpm@linux-foundation.org>
Mon, 4 Jul 2022 01:08:51 +0000 (18:08 -0700)
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.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Zach 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: Andrew Morton <akpm@linux-foundation.org>
mm/khugepaged.c

index e237c5e..35f87bd 100644 (file)
@@ -1881,8 +1881,8 @@ out_unlock:
 
        if (nr_none) {
                __mod_lruvec_page_state(new_page, NR_FILE_PAGES, nr_none);
-               if (is_shmem)
-                       __mod_lruvec_page_state(new_page, NR_SHMEM, nr_none);
+               /* nr_none is always 0 for non-shmem. */
+               __mod_lruvec_page_state(new_page, NR_SHMEM, nr_none);
        }
 
        /* Join all the small entries into a single multi-index entry */
@@ -1946,10 +1946,10 @@ xa_unlocked:
 
                /* Something went wrong: roll back page cache changes */
                xas_lock_irq(&xas);
-               mapping->nrpages -= nr_none;
-
-               if (is_shmem)
+               if (nr_none) {
+                       mapping->nrpages -= nr_none;
                        shmem_uncharge(mapping->host, nr_none);
+               }
 
                xas_set(&xas, start);
                xas_for_each(&xas, page, end - 1) {