| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: mm/vmscan: convert reclaim_pages() to use a folio |
| Date: Fri, 17 Jun 2022 16:42:48 +0100 |
| |
| Remove a few hidden calls to compound_head, saving 76 bytes of text. |
| |
| Link: https://lkml.kernel.org/r/20220617154248.700416-6-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/vmscan.c | 25 ++++++++++++------------- |
| 1 file changed, 12 insertions(+), 13 deletions(-) |
| |
| --- a/mm/vmscan.c~mm-vmscan-convert-reclaim_pages-to-use-a-folio |
| +++ a/mm/vmscan.c |
| @@ -2619,34 +2619,33 @@ static unsigned int reclaim_page_list(st |
| return nr_reclaimed; |
| } |
| |
| -unsigned long reclaim_pages(struct list_head *page_list) |
| +unsigned long reclaim_pages(struct list_head *folio_list) |
| { |
| int nid; |
| unsigned int nr_reclaimed = 0; |
| - LIST_HEAD(node_page_list); |
| - struct page *page; |
| + LIST_HEAD(node_folio_list); |
| unsigned int noreclaim_flag; |
| |
| - if (list_empty(page_list)) |
| + if (list_empty(folio_list)) |
| return nr_reclaimed; |
| |
| noreclaim_flag = memalloc_noreclaim_save(); |
| |
| - nid = page_to_nid(lru_to_page(page_list)); |
| + nid = folio_nid(lru_to_folio(folio_list)); |
| do { |
| - page = lru_to_page(page_list); |
| + struct folio *folio = lru_to_folio(folio_list); |
| |
| - if (nid == page_to_nid(page)) { |
| - ClearPageActive(page); |
| - list_move(&page->lru, &node_page_list); |
| + if (nid == folio_nid(folio)) { |
| + folio_clear_active(folio); |
| + list_move(&folio->lru, &node_folio_list); |
| continue; |
| } |
| |
| - nr_reclaimed += reclaim_page_list(&node_page_list, NODE_DATA(nid)); |
| - nid = page_to_nid(lru_to_page(page_list)); |
| - } while (!list_empty(page_list)); |
| + nr_reclaimed += reclaim_page_list(&node_folio_list, NODE_DATA(nid)); |
| + nid = folio_nid(lru_to_folio(folio_list)); |
| + } while (!list_empty(folio_list)); |
| |
| - nr_reclaimed += reclaim_page_list(&node_page_list, NODE_DATA(nid)); |
| + nr_reclaimed += reclaim_page_list(&node_folio_list, NODE_DATA(nid)); |
| |
| memalloc_noreclaim_restore(noreclaim_flag); |
| |
| _ |