On Wed 27-04-16 14:17:20, Andrew Morton wrote: [...] > @@ -2484,7 +2485,14 @@ static void collapse_huge_page(struct mm > goto out; > } > > - __collapse_huge_page_swapin(mm, vma, address, pmd); > + swap = get_mm_counter(mm, MM_SWAPENTS); > + curr_allocstall = sum_vm_event(ALLOCSTALL); > + /* > + * When system under pressure, don't swapin readahead. > + * So that avoid unnecessary resource consuming. > + */ > + if (allocstall == curr_allocstall && swap != 0) > + __collapse_huge_page_swapin(mm, vma, address, pmd); > > anon_vma_lock_write(vma->anon_vma); > I have mentioned that before already but this seems like a rather weak heuristic. Don't we really rather teach __collapse_huge_page_swapin (resp. do_swap_page) do to an optimistic GFP_NOWAIT allocations and back off under the memory pressure? -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>