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

Commit 6e5ef1a9 authored by Christoph Lameter's avatar Christoph Lameter Committed by Linus Torvalds
Browse files

[PATCH] vmscan: emove obsolete checks from shrink_list() and fix unlikely in refill_inactive_zone()



As suggested by Marcelo:

1. The optimization introduced recently for not calling
   page_referenced() during zone reclaim makes two additional checks in
   shrink_list unnecessary.

2. The if (unlikely(sc->may_swap)) in refill_inactive_zone is optimized
   for the zone_reclaim case.  However, most peoples system only does swap.
   Undo that.

Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Cc: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent a7290ee0
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -460,12 +460,9 @@ static unsigned long shrink_page_list(struct list_head *page_list,
		 * Anonymous process memory has backing store?
		 * Try to allocate it some swap space here.
		 */
		if (PageAnon(page) && !PageSwapCache(page)) {
			if (!sc->may_swap)
				goto keep_locked;
		if (PageAnon(page) && !PageSwapCache(page))
			if (!add_to_swap(page, GFP_ATOMIC))
				goto activate_locked;
		}
#endif /* CONFIG_SWAP */

		mapping = page_mapping(page);
@@ -477,12 +474,6 @@ static unsigned long shrink_page_list(struct list_head *page_list,
		 * processes. Try to unmap it here.
		 */
		if (page_mapped(page) && mapping) {
			/*
			 * No unmapping if we do not swap
			 */
			if (!sc->may_swap)
				goto keep_locked;

			switch (try_to_unmap(page, 0)) {
			case SWAP_FAIL:
				goto activate_locked;
@@ -1205,7 +1196,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
	struct pagevec pvec;
	int reclaim_mapped = 0;

	if (unlikely(sc->may_swap)) {
	if (sc->may_swap) {
		long mapped_ratio;
		long distress;
		long swap_tendency;