Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit abd6e8a7 authored by Michal Hocko's avatar Michal Hocko Committed by Linus Torvalds
Browse files

Revert "mm: bail out in shrink_inactive_list()"

This reverts commit 91dcade4.

inactive_reclaimable_pages shouldn't be needed anymore since that
get_scan_count is aware of the eligble zones ("mm, vmscan: consider
eligible zones in get_scan_count").

Link: http://lkml.kernel.org/r/20170117103702.28542-4-mhocko@kernel.org


Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
Acked-by: default avatarHillf Danton <hillf.zj@alibaba-inc.com>
Acked-by: default avatarMinchan Kim <minchan@kernel.org>
Acked-by: default avatarMel Gorman <mgorman@suse.de>
Acked-by: default avatarJohannes Weiner <hannes@cmpchxg.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 71ab6cfe
Loading
Loading
Loading
Loading
+0 −27
Original line number Diff line number Diff line
@@ -1701,30 +1701,6 @@ static int current_may_throttle(void)
		bdi_write_congested(current->backing_dev_info);
}

static bool inactive_reclaimable_pages(struct lruvec *lruvec,
				struct scan_control *sc, enum lru_list lru)
{
	int zid;
	struct zone *zone;
	int file = is_file_lru(lru);
	struct pglist_data *pgdat = lruvec_pgdat(lruvec);

	if (!global_reclaim(sc))
		return true;

	for (zid = sc->reclaim_idx; zid >= 0; zid--) {
		zone = &pgdat->node_zones[zid];
		if (!managed_zone(zone))
			continue;

		if (zone_page_state_snapshot(zone, NR_ZONE_LRU_BASE +
				LRU_FILE * file) >= SWAP_CLUSTER_MAX)
			return true;
	}

	return false;
}

/*
 * shrink_inactive_list() is a helper for shrink_node().  It returns the number
 * of reclaimed pages
@@ -1743,9 +1719,6 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
	struct pglist_data *pgdat = lruvec_pgdat(lruvec);
	struct zone_reclaim_stat *reclaim_stat = &lruvec->reclaim_stat;

	if (!inactive_reclaimable_pages(lruvec, sc, lru))
		return 0;

	while (unlikely(too_many_isolated(pgdat, file, sc))) {
		congestion_wait(BLK_RW_ASYNC, HZ/10);