mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
vmscan: convert the activate_locked portion of shrink_page_list to folios
This accounts the number of pages activated correctly for large folios. Link: https://lkml.kernel.org/r/20220504182857.4013401-14-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>
This commit is contained in:
parent
5441d4902f
commit
246b648038
17
mm/vmscan.c
17
mm/vmscan.c
@ -1946,15 +1946,16 @@ static unsigned int shrink_page_list(struct list_head *page_list,
|
||||
}
|
||||
activate_locked:
|
||||
/* Not a candidate for swapping, so reclaim swap space. */
|
||||
if (PageSwapCache(page) && (mem_cgroup_swap_full(page) ||
|
||||
PageMlocked(page)))
|
||||
try_to_free_swap(page);
|
||||
VM_BUG_ON_PAGE(PageActive(page), page);
|
||||
if (!PageMlocked(page)) {
|
||||
int type = page_is_file_lru(page);
|
||||
SetPageActive(page);
|
||||
if (folio_test_swapcache(folio) &&
|
||||
(mem_cgroup_swap_full(&folio->page) ||
|
||||
folio_test_mlocked(folio)))
|
||||
try_to_free_swap(&folio->page);
|
||||
VM_BUG_ON_FOLIO(folio_test_active(folio), folio);
|
||||
if (!folio_test_mlocked(folio)) {
|
||||
int type = folio_is_file_lru(folio);
|
||||
folio_set_active(folio);
|
||||
stat->nr_activate[type] += nr_pages;
|
||||
count_memcg_page_event(page, PGACTIVATE);
|
||||
count_memcg_folio_events(folio, PGACTIVATE, nr_pages);
|
||||
}
|
||||
keep_locked:
|
||||
unlock_page(page);
|
||||
|
Loading…
Reference in New Issue
Block a user