Commit 40686464 authored by Ben Hutchings's avatar Ben Hutchings

Revert "mm: vmscan: fix endless loop in kswapd balancing"

This reverts commit 39d18dc4 which
was commit 60cefed4 upstream.

This was not needed and is not suitable for 3.2.y.
Reported-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent fa1dd81c
......@@ -2492,19 +2492,6 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont,
}
#endif
static bool zone_balanced(struct zone *zone, int order,
unsigned long balance_gap, int classzone_idx)
{
if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone) +
balance_gap, classzone_idx, 0))
return false;
if (COMPACTION_BUILD && order && !compaction_suitable(zone, order))
return false;
return true;
}
/*
* pgdat_balanced is used when checking if a node is balanced for high-order
* allocations. Only zones that meet watermarks and are in a zone allowed
......@@ -2564,7 +2551,8 @@ static bool sleeping_prematurely(pg_data_t *pgdat, int order, long remaining,
continue;
}
if (!zone_balanced(zone, order, 0, i))
if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone),
i, 0))
all_zones_ok = false;
else
balanced += zone->present_pages;
......@@ -2667,7 +2655,8 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order,
shrink_active_list(SWAP_CLUSTER_MAX, zone,
&sc, priority, 0);
if (!zone_balanced(zone, order, 0, 0)) {
if (!zone_watermark_ok_safe(zone, order,
high_wmark_pages(zone), 0, 0)) {
end_zone = i;
break;
} else {
......@@ -2728,8 +2717,9 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order,
(zone->present_pages +
KSWAPD_ZONE_BALANCE_GAP_RATIO-1) /
KSWAPD_ZONE_BALANCE_GAP_RATIO);
if (!zone_balanced(zone, order,
balance_gap, end_zone)) {
if (!zone_watermark_ok_safe(zone, order,
high_wmark_pages(zone) + balance_gap,
end_zone, 0)) {
shrink_zone(priority, zone, &sc);
reclaim_state->reclaimed_slab = 0;
......@@ -2756,7 +2746,8 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order,
continue;
}
if (!zone_balanced(zone, order, 0, end_zone)) {
if (!zone_watermark_ok_safe(zone, order,
high_wmark_pages(zone), end_zone, 0)) {
all_zones_ok = 0;
/*
* We are still under min water mark. This
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment