mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
mm: vmscan: filter out the dirty file folios for node_reclaim()
Patch series "optimize the logic for handling dirty file folios during
reclaim", v2.
Since we no longer attempt to write back filesystem folios during reclaim,
some logic for handling dirty file folios in the reclaim process also
needs to be updated. Please check the details in each patch.
This patch (of 2):
After commit 6b0dfabb35 ("fs: Remove aops->writepage"), we no longer
attempt to write back filesystem folios in pageout(), and only tmpfs/shmem
folios and anonymous swapcache folios can be written back. Therefore, we
should also filter out the dirty filesystem folios for node_reclaim() to
avoid unnecessary LRU scans.
Link: https://lkml.kernel.org/r/cover.1760687075.git.baolin.wang@linux.alibaba.com
Link: https://lkml.kernel.org/r/c91f5ecc5152b647904c7503618a01885d913928.1760687075.git.baolin.wang@linux.alibaba.com
Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Qi Zheng <zhengqi.arch@bytedance.com>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
5bf65d4a8d
commit
b34619af9c
@@ -7623,9 +7623,11 @@ static unsigned long node_pagecache_reclaimable(struct pglist_data *pgdat)
|
||||
else
|
||||
nr_pagecache_reclaimable = node_unmapped_file_pages(pgdat);
|
||||
|
||||
/* If we can't clean pages, remove dirty pages from consideration */
|
||||
if (!(node_reclaim_mode & RECLAIM_WRITE))
|
||||
delta += node_page_state(pgdat, NR_FILE_DIRTY);
|
||||
/*
|
||||
* Since we can't clean folios through reclaim, remove dirty file
|
||||
* folios from consideration.
|
||||
*/
|
||||
delta += node_page_state(pgdat, NR_FILE_DIRTY);
|
||||
|
||||
/* Watch for any possible underflows due to delta */
|
||||
if (unlikely(delta > nr_pagecache_reclaimable))
|
||||
|
||||
Reference in New Issue
Block a user