ksm: convert should_skip_rmap_item() to take a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 2 Oct 2024 15:25:29 +0000 (16:25 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 7 Nov 2024 04:11:08 +0000 (20:11 -0800)
Remove a call to PageKSM() by passing the folio containing tmp_page to
should_skip_rmap_item.  Removes a hidden call to compound_head().

Link: https://lkml.kernel.org/r/20241002152533.1350629-4-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Alex Shi <alexs@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/ksm.c

index f5957bbfcd2f6bc9d19e5d2a438ce15d8c10e327..b1c5c8aff41b784acfd0582c5d5dc1a94c07fe20 100644 (file)
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -2402,10 +2402,10 @@ static unsigned int skip_age(rmap_age_t age)
 /*
  * Determines if a page should be skipped for the current scan.
  *
- * @page: page to check
+ * @folio: folio containing the page to check
  * @rmap_item: associated rmap_item of page
  */
-static bool should_skip_rmap_item(struct page *page,
+static bool should_skip_rmap_item(struct folio *folio,
                                  struct ksm_rmap_item *rmap_item)
 {
        rmap_age_t age;
@@ -2418,7 +2418,7 @@ static bool should_skip_rmap_item(struct page *page,
         * will essentially ignore them, but we still have to process them
         * properly.
         */
-       if (PageKsm(page))
+       if (folio_test_ksm(folio))
                return false;
 
        age = rmap_item->age;
@@ -2561,7 +2561,7 @@ next_mm:
                                        ksm_scan.rmap_list =
                                                        &rmap_item->rmap_list;
 
-                                       if (should_skip_rmap_item(tmp_page, rmap_item)) {
+                                       if (should_skip_rmap_item(folio, rmap_item)) {
                                                folio_put(folio);
                                                goto next_page;
                                        }