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

Commit 59ba7003 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mm: do not shrink pages marked for reclaim by MADV_FREE"

parents 77c1bc11 a25275e2
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1742,6 +1742,18 @@ static int reclaim_pte_range(pmd_t *pmd, unsigned long addr,
		if (isolate_lru_page(compound_head(page)))
			continue;

		/* MADV_FREE clears pte dirty bit and then marks the page
		 * lazyfree (clear SwapBacked). Inbetween if this lazyfreed page
		 * is touched by user then it becomes dirty.  PPR in
		 * shrink_page_list in try_to_unmap finds the page dirty, marks
		 * it back as PageSwapBacked and skips reclaim. This can cause
		 * isolated count mismatch.
		 */
		if (PageAnon(page) && !PageSwapBacked(page)) {
			putback_lru_page(page);
			continue;
		}

		list_add(&page->lru, &page_list);
		inc_node_page_state(page, NR_ISOLATED_ANON +
				page_is_file_cache(page));