]> Git Repo - linux.git/commitdiff
mm: vmscan: fix inappropriate zone congestion clearing
authorJohannes Weiner <[email protected]>
Thu, 6 Dec 2012 20:23:25 +0000 (15:23 -0500)
committerLinus Torvalds <[email protected]>
Sat, 8 Dec 2012 16:41:18 +0000 (08:41 -0800)
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 <[email protected]>
Reviewed-by: Rik van Riel <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/vmscan.c

index 124bbfe5cc52c1981305c26963d588adb9bd984a..b7ed37675644ce7734946bfe5d2e2cfdc7f08fbc 100644 (file)
@@ -2827,9 +2827,6 @@ out:
                        if (zone_watermark_ok(zone, order,
                                    low_wmark_pages(zone), *classzone_idx, 0))
                                zones_need_compaction = 0;
-
-                       /* If balanced, clear the congested flag */
-                       zone_clear_flag(zone, ZONE_CONGESTED);
                }
 
                if (zones_need_compaction)
This page took 0.055872 seconds and 4 git commands to generate.