aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYosry Ahmed <[email protected]>2023-03-30 19:18:00 +0000
committerAndrew Morton <[email protected]>2023-04-18 16:29:50 -0700
commit0d856cfedd6bc0cb8e19c1e70d400e79b655cfdd (patch)
tree71ae8010d094fc0dda6826bc9b02efa6419ff849
parent4009b2f1887036d30637bc06dd0ade7e18408bb3 (diff)
vmscan: memcg: sleep when flushing stats during reclaim
Memory reclaim is a sleepable context. Flushing is an expensive operaiton that scales with the number of cpus and the number of cgroups in the system, so avoid doing it atomically unnecessarily. This can slow down reclaim code if flushing stats is taking too long, but there is already multiple cond_resched()'s in reclaim code. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Yosry Ahmed <[email protected]> Acked-by: Shakeel Butt <[email protected]> Acked-by: Johannes Weiner <[email protected]> Acked-by: Michal Hocko <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Josef Bacik <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Michal Koutný <[email protected]> Cc: Muchun Song <[email protected]> Cc: Roman Gushchin <[email protected]> Cc: Tejun Heo <[email protected]> Cc: Vasily Averin <[email protected]> Cc: Zefan Li <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r--mm/vmscan.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index c68db50ec109..98719e72b5e2 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2861,7 +2861,7 @@ static void prepare_scan_count(pg_data_t *pgdat, struct scan_control *sc)
* Flush the memory cgroup stats, so that we read accurate per-memcg
* lruvec stats for heuristics.
*/
- mem_cgroup_flush_stats_atomic();
+ mem_cgroup_flush_stats();
/*
* Determine the scan balance between anon and file LRUs.