Loading mm/memory.c +11 −0 Original line number Diff line number Diff line Loading @@ -3097,6 +3097,17 @@ int do_swap_page(struct vm_fault *vmf) lru_cache_add_anon(page); swap_readpage(page, true); } } else if (vmf->flags & FAULT_FLAG_SPECULATIVE) { /* * Don't try readahead during a speculative page fault * as the VMA's boundaries may change in our back. * If the page is not in the swap cache and synchronous * read is disabled, fall back to the regular page fault * mechanism. */ delayacct_clear_flag(DELAYACCT_PF_SWAPIN); ret = VM_FAULT_RETRY; goto out; } else { page = swapin_readahead(entry, GFP_HIGHUSER_MOVABLE, vmf); Loading Loading
mm/memory.c +11 −0 Original line number Diff line number Diff line Loading @@ -3097,6 +3097,17 @@ int do_swap_page(struct vm_fault *vmf) lru_cache_add_anon(page); swap_readpage(page, true); } } else if (vmf->flags & FAULT_FLAG_SPECULATIVE) { /* * Don't try readahead during a speculative page fault * as the VMA's boundaries may change in our back. * If the page is not in the swap cache and synchronous * read is disabled, fall back to the regular page fault * mechanism. */ delayacct_clear_flag(DELAYACCT_PF_SWAPIN); ret = VM_FAULT_RETRY; goto out; } else { page = swapin_readahead(entry, GFP_HIGHUSER_MOVABLE, vmf); Loading