aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@cmpxchg.org>2012-12-06 15:23:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-08 11:41:18 -0500
commited23ec4f0a510528e0ffe415f9394107418ae854 (patch)
treee124564fc3796c67098399fdd15a48240f3430f5 /mm/vmscan.c
parent684c9aaebbb0ea3a9954d605d4908e650659e7db (diff)
mm: vmscan: fix inappropriate zone congestion clearing
commit c702418f8a2f ("mm: vmscan: do not keep kswapd looping forever due to individual uncompactable zones") removed zone watermark checks from the compaction code in kswapd but left in the zone congestion clearing, which now happens unconditionally on higher order reclaim. This messes up the reclaim throttling logic for zones with dirty/writeback pages, where zones should only lose their congestion status when their watermarks have been restored. Remove the clearing from the zone compaction section entirely. The preliminary zone check and the reclaim loop in kswapd will clear it if the zone is considered balanced. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Reviewed-by: Rik van Riel <riel@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 124bbfe5cc52..b7ed37675644 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2827,9 +2827,6 @@ out:
2827 if (zone_watermark_ok(zone, order, 2827 if (zone_watermark_ok(zone, order,
2828 low_wmark_pages(zone), *classzone_idx, 0)) 2828 low_wmark_pages(zone), *classzone_idx, 0))
2829 zones_need_compaction = 0; 2829 zones_need_compaction = 0;
2830
2831 /* If balanced, clear the congested flag */
2832 zone_clear_flag(zone, ZONE_CONGESTED);
2833 } 2830 }
2834 2831
2835 if (zones_need_compaction) 2832 if (zones_need_compaction)