aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
authorMinchan Kim <minchan@kernel.org>2018-04-05 19:23:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-04-06 00:36:25 -0400
commite9e9b7ecee4a139a6fbe2e15ef224ca6b6c47d57 (patch)
tree179430c7efc50a0da618934d117b152258e82353 /mm/memory.c
parenteaf649ebc3acfbb235ce31cebd06e4876d05758e (diff)
mm: swap: unify cluster-based and vma-based swap readahead
This patch makes do_swap_page() not need to be aware of two different swap readahead algorithms. Just unify cluster-based and vma-based readahead function call. Link: http://lkml.kernel.org/r/1509520520-32367-3-git-send-email-minchan@kernel.org Link: http://lkml.kernel.org/r/20180220085249.151400-3-minchan@kernel.org Signed-off-by: Minchan Kim <minchan@kernel.org> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Hugh Dickins <hughd@google.com> Cc: Huang Ying <ying.huang@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/mm/memory.c b/mm/memory.c
index bc1ccff79538..01f5464e0fd2 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2927,7 +2927,8 @@ int do_swap_page(struct vm_fault *vmf)
2927 if (si->flags & SWP_SYNCHRONOUS_IO && 2927 if (si->flags & SWP_SYNCHRONOUS_IO &&
2928 __swap_count(si, entry) == 1) { 2928 __swap_count(si, entry) == 1) {
2929 /* skip swapcache */ 2929 /* skip swapcache */
2930 page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vmf->address); 2930 page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma,
2931 vmf->address);
2931 if (page) { 2932 if (page) {
2932 __SetPageLocked(page); 2933 __SetPageLocked(page);
2933 __SetPageSwapBacked(page); 2934 __SetPageSwapBacked(page);
@@ -2936,12 +2937,8 @@ int do_swap_page(struct vm_fault *vmf)
2936 swap_readpage(page, true); 2937 swap_readpage(page, true);
2937 } 2938 }
2938 } else { 2939 } else {
2939 if (swap_use_vma_readahead()) 2940 page = swapin_readahead(entry, GFP_HIGHUSER_MOVABLE,
2940 page = do_swap_page_readahead(entry, 2941 vmf);
2941 GFP_HIGHUSER_MOVABLE, vmf);
2942 else
2943 page = swapin_readahead(entry,
2944 GFP_HIGHUSER_MOVABLE, vma, vmf->address);
2945 swapcache = page; 2942 swapcache = page;
2946 } 2943 }
2947 2944