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

This commit is contained in:
qctecmdr 2020-11-11 23:35:26 -08:00 • committed by Gerrit - the friendly Code Review server
commit 59ba700363

View file

@ -1742,6 +1742,18 @@ cont:
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));