Merge tag 'loongarch-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuaca...
[linux-2.6-block.git] / mm / vmscan.c
index da93213af981e99dc58aa8fcc2b2d91e8d1db2fd..d55e8d07ffc4a75e68e587ec9e22dc802cf67d24 100644 (file)
@@ -1214,6 +1214,8 @@ retry:
                                                goto activate_locked;
                                }
                                if (!add_to_swap(folio)) {
+                                       int __maybe_unused order = folio_order(folio);
+
                                        if (!folio_test_large(folio))
                                                goto activate_locked_split;
                                        /* Fallback to swap normal pages */
@@ -1225,6 +1227,7 @@ retry:
                                                        THP_SWPOUT_FALLBACK, 1);
                                                count_vm_event(THP_SWPOUT_FALLBACK);
                                        }
+                                       count_mthp_stat(order, MTHP_STAT_ANON_SWPOUT_FALLBACK);
 #endif
                                        if (!add_to_swap(folio))
                                                goto activate_locked_split;
@@ -2106,8 +2109,7 @@ static void shrink_active_list(unsigned long nr_to_scan,
 }
 
 static unsigned int reclaim_folio_list(struct list_head *folio_list,
-                                     struct pglist_data *pgdat,
-                                     bool ignore_references)
+                                     struct pglist_data *pgdat)
 {
        struct reclaim_stat dummy_stat;
        unsigned int nr_reclaimed;
@@ -2120,7 +2122,7 @@ static unsigned int reclaim_folio_list(struct list_head *folio_list,
                .no_demotion = 1,
        };
 
-       nr_reclaimed = shrink_folio_list(folio_list, pgdat, &sc, &dummy_stat, ignore_references);
+       nr_reclaimed = shrink_folio_list(folio_list, pgdat, &sc, &dummy_stat, true);
        while (!list_empty(folio_list)) {
                folio = lru_to_folio(folio_list);
                list_del(&folio->lru);
@@ -2130,7 +2132,7 @@ static unsigned int reclaim_folio_list(struct list_head *folio_list,
        return nr_reclaimed;
 }
 
-unsigned long reclaim_pages(struct list_head *folio_list, bool ignore_references)
+unsigned long reclaim_pages(struct list_head *folio_list)
 {
        int nid;
        unsigned int nr_reclaimed = 0;
@@ -2152,12 +2154,11 @@ unsigned long reclaim_pages(struct list_head *folio_list, bool ignore_references
                        continue;
                }
 
-               nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid),
-                                                  ignore_references);
+               nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid));
                nid = folio_nid(lru_to_folio(folio_list));
        } while (!list_empty(folio_list));
 
-       nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid), ignore_references);
+       nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid));
 
        memalloc_noreclaim_restore(noreclaim_flag);