Lines Matching refs:folio

34 static struct folio *page_idle_get_folio(unsigned long pfn)  in page_idle_get_folio()
37 struct folio *folio; in page_idle_get_folio() local
42 folio = page_folio(page); in page_idle_get_folio()
43 if (!folio_test_lru(folio) || !folio_try_get(folio)) in page_idle_get_folio()
45 if (unlikely(page_folio(page) != folio || !folio_test_lru(folio))) { in page_idle_get_folio()
46 folio_put(folio); in page_idle_get_folio()
47 folio = NULL; in page_idle_get_folio()
49 return folio; in page_idle_get_folio()
52 static bool page_idle_clear_pte_refs_one(struct folio *folio, in page_idle_clear_pte_refs_one() argument
56 DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); in page_idle_clear_pte_refs_one()
78 folio_clear_idle(folio); in page_idle_clear_pte_refs_one()
84 folio_set_young(folio); in page_idle_clear_pte_refs_one()
89 static void page_idle_clear_pte_refs(struct folio *folio) in page_idle_clear_pte_refs() argument
101 if (!folio_mapped(folio) || !folio_raw_mapping(folio)) in page_idle_clear_pte_refs()
104 need_lock = !folio_test_anon(folio) || folio_test_ksm(folio); in page_idle_clear_pte_refs()
105 if (need_lock && !folio_trylock(folio)) in page_idle_clear_pte_refs()
108 rmap_walk(folio, &rwc); in page_idle_clear_pte_refs()
111 folio_unlock(folio); in page_idle_clear_pte_refs()
119 struct folio *folio; in page_idle_bitmap_read() local
138 folio = page_idle_get_folio(pfn); in page_idle_bitmap_read()
139 if (folio) { in page_idle_bitmap_read()
140 if (folio_test_idle(folio)) { in page_idle_bitmap_read()
146 page_idle_clear_pte_refs(folio); in page_idle_bitmap_read()
147 if (folio_test_idle(folio)) in page_idle_bitmap_read()
150 folio_put(folio); in page_idle_bitmap_read()
164 struct folio *folio; in page_idle_bitmap_write() local
182 folio = page_idle_get_folio(pfn); in page_idle_bitmap_write()
183 if (folio) { in page_idle_bitmap_write()
184 page_idle_clear_pte_refs(folio); in page_idle_bitmap_write()
185 folio_set_idle(folio); in page_idle_bitmap_write()
186 folio_put(folio); in page_idle_bitmap_write()