aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 54155268dfca..94e86dd6954c 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -630,9 +630,14 @@ static unsigned long shrink_page_list(struct list_head *page_list,
630 630
631 referenced = page_referenced(page, 1, 631 referenced = page_referenced(page, 1,
632 sc->mem_cgroup, &vm_flags); 632 sc->mem_cgroup, &vm_flags);
633 /* In active use or really unfreeable? Activate it. */ 633 /*
634 * In active use or really unfreeable? Activate it.
635 * If page which have PG_mlocked lost isoltation race,
636 * try_to_unmap moves it to unevictable list
637 */
634 if (sc->order <= PAGE_ALLOC_COSTLY_ORDER && 638 if (sc->order <= PAGE_ALLOC_COSTLY_ORDER &&
635 referenced && page_mapping_inuse(page)) 639 referenced && page_mapping_inuse(page)
640 && !(vm_flags & VM_LOCKED))
636 goto activate_locked; 641 goto activate_locked;
637 642
638 /* 643 /*
@@ -1104,7 +1109,7 @@ static unsigned long shrink_inactive_list(unsigned long max_scan,
1104 */ 1109 */
1105 if (nr_freed < nr_taken && !current_is_kswapd() && 1110 if (nr_freed < nr_taken && !current_is_kswapd() &&
1106 lumpy_reclaim) { 1111 lumpy_reclaim) {
1107 congestion_wait(WRITE, HZ/10); 1112 congestion_wait(BLK_RW_ASYNC, HZ/10);
1108 1113
1109 /* 1114 /*
1110 * The attempt at page out may have made some 1115 * The attempt at page out may have made some
@@ -1721,7 +1726,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
1721 1726
1722 /* Take a nap, wait for some writeback to complete */ 1727 /* Take a nap, wait for some writeback to complete */
1723 if (sc->nr_scanned && priority < DEF_PRIORITY - 2) 1728 if (sc->nr_scanned && priority < DEF_PRIORITY - 2)
1724 congestion_wait(WRITE, HZ/10); 1729 congestion_wait(BLK_RW_ASYNC, HZ/10);
1725 } 1730 }
1726 /* top priority shrink_zones still had more to do? don't OOM, then */ 1731 /* top priority shrink_zones still had more to do? don't OOM, then */
1727 if (!sc->all_unreclaimable && scanning_global_lru(sc)) 1732 if (!sc->all_unreclaimable && scanning_global_lru(sc))
@@ -1960,7 +1965,7 @@ loop_again:
1960 * another pass across the zones. 1965 * another pass across the zones.
1961 */ 1966 */
1962 if (total_scanned && priority < DEF_PRIORITY - 2) 1967 if (total_scanned && priority < DEF_PRIORITY - 2)
1963 congestion_wait(WRITE, HZ/10); 1968 congestion_wait(BLK_RW_ASYNC, HZ/10);
1964 1969
1965 /* 1970 /*
1966 * We do this so kswapd doesn't build up large priorities for 1971 * We do this so kswapd doesn't build up large priorities for
@@ -2233,7 +2238,7 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
2233 goto out; 2238 goto out;
2234 2239
2235 if (sc.nr_scanned && prio < DEF_PRIORITY - 2) 2240 if (sc.nr_scanned && prio < DEF_PRIORITY - 2)
2236 congestion_wait(WRITE, HZ / 10); 2241 congestion_wait(BLK_RW_ASYNC, HZ / 10);
2237 } 2242 }
2238 } 2243 }
2239 2244