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

Commit 5a9bbdcd authored by Hugh Dickins's avatar Hugh Dickins Committed by Linus Torvalds
Browse files

mm: don't waste swap on locked pages



try_to_unmap always fails on a page found in a VM_LOCKED vma (unless
migrating), and recycles it back to the active list.  But if it's an
anonymous page, we've already allocated swap to it: just wasting swap.
Spot locked pages in page_referenced_one and treat them as referenced.

Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
Tested-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Ethan Solomita <solo@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 9eccf2a8
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -283,7 +283,10 @@ static int page_referenced_one(struct page *page,
	if (!pte)
		goto out;

	if (ptep_clear_flush_young(vma, address, pte))
	if (vma->vm_flags & VM_LOCKED) {
		referenced++;
		*mapcount = 1;	/* break early from loop */
	} else if (ptep_clear_flush_young(vma, address, pte))
		referenced++;

	/* Pretend the page is referenced if the task has the