Loading fs/proc/task_mmu.c +12 −0 Original line number Diff line number Diff line Loading @@ -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)); Loading Loading
fs/proc/task_mmu.c +12 −0 Original line number Diff line number Diff line Loading @@ -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)); Loading