]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm: vmscan: only update per-cpu thresholds for online CPU
authorMel Gorman <mgorman@suse.de>
Thu, 28 Aug 2014 18:35:43 +0000 (19:35 +0100)
committerJiri Slaby <jslaby@suse.cz>
Fri, 26 Sep 2014 09:52:09 +0000 (11:52 +0200)
commit bb0b6dffa2ccfbd9747ad0cc87c7459622896e60 upstream.

When kswapd is awake reclaiming, the per-cpu stat thresholds are lowered
to get more accurate counts to avoid breaching watermarks.  This
threshold update iterates over all possible CPUs which is unnecessary.
Only online CPUs need to be updated.  If a new CPU is onlined,
refresh_zone_stat_thresholds() will set the thresholds correctly.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
mm/vmstat.c

index 28245d5eaed899d07b4e29536e9cdffeca32a444..f7ca04482299f9f4ed5aa6e8a99a2f3c19ab93a0 100644 (file)
@@ -200,7 +200,7 @@ void set_pgdat_percpu_threshold(pg_data_t *pgdat,
                        continue;
 
                threshold = (*calculate_pressure)(zone);
-               for_each_possible_cpu(cpu)
+               for_each_online_cpu(cpu)
                        per_cpu_ptr(zone->pageset, cpu)->stat_threshold
                                                        = threshold;
        }