Lines Matching refs:folio

19 static bool __damon_pa_mkold(struct folio *folio, struct vm_area_struct *vma,  in __damon_pa_mkold()  argument
22 DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); in __damon_pa_mkold()
36 struct folio *folio = damon_get_folio(PHYS_PFN(paddr)); in damon_pa_mkold() local
43 if (!folio) in damon_pa_mkold()
46 if (!folio_mapped(folio) || !folio_raw_mapping(folio)) { in damon_pa_mkold()
47 folio_set_idle(folio); in damon_pa_mkold()
51 need_lock = !folio_test_anon(folio) || folio_test_ksm(folio); in damon_pa_mkold()
52 if (need_lock && !folio_trylock(folio)) in damon_pa_mkold()
55 rmap_walk(folio, &rwc); in damon_pa_mkold()
58 folio_unlock(folio); in damon_pa_mkold()
61 folio_put(folio); in damon_pa_mkold()
82 static bool __damon_pa_young(struct folio *folio, struct vm_area_struct *vma, in __damon_pa_young() argument
86 DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); in __damon_pa_young()
93 !folio_test_idle(folio) || in __damon_pa_young()
98 !folio_test_idle(folio) || in __damon_pa_young()
116 struct folio *folio = damon_get_folio(PHYS_PFN(paddr)); in damon_pa_young() local
125 if (!folio) in damon_pa_young()
128 if (!folio_mapped(folio) || !folio_raw_mapping(folio)) { in damon_pa_young()
129 if (folio_test_idle(folio)) in damon_pa_young()
136 need_lock = !folio_test_anon(folio) || folio_test_ksm(folio); in damon_pa_young()
137 if (need_lock && !folio_trylock(folio)) in damon_pa_young()
140 rmap_walk(folio, &rwc); in damon_pa_young()
143 folio_unlock(folio); in damon_pa_young()
146 *folio_sz = folio_size(folio); in damon_pa_young()
147 folio_put(folio); in damon_pa_young()
189 struct folio *folio) in __damos_pa_filter_out() argument
196 matched = folio_test_anon(folio); in __damos_pa_filter_out()
200 memcg = folio_memcg_check(folio); in __damos_pa_filter_out()
217 static bool damos_pa_filter_out(struct damos *scheme, struct folio *folio) in damos_pa_filter_out() argument
222 if (__damos_pa_filter_out(filter, folio)) in damos_pa_filter_out()
234 struct folio *folio = damon_get_folio(PHYS_PFN(addr)); in damon_pa_pageout() local
236 if (!folio) in damon_pa_pageout()
239 if (damos_pa_filter_out(s, folio)) in damon_pa_pageout()
242 folio_clear_referenced(folio); in damon_pa_pageout()
243 folio_test_clear_young(folio); in damon_pa_pageout()
244 if (!folio_isolate_lru(folio)) in damon_pa_pageout()
246 if (folio_test_unevictable(folio)) in damon_pa_pageout()
247 folio_putback_lru(folio); in damon_pa_pageout()
249 list_add(&folio->lru, &folio_list); in damon_pa_pageout()
251 folio_put(folio); in damon_pa_pageout()
264 struct folio *folio = damon_get_folio(PHYS_PFN(addr)); in damon_pa_mark_accessed_or_deactivate() local
266 if (!folio) in damon_pa_mark_accessed_or_deactivate()
269 if (damos_pa_filter_out(s, folio)) in damon_pa_mark_accessed_or_deactivate()
273 folio_mark_accessed(folio); in damon_pa_mark_accessed_or_deactivate()
275 folio_deactivate(folio); in damon_pa_mark_accessed_or_deactivate()
276 applied += folio_nr_pages(folio); in damon_pa_mark_accessed_or_deactivate()
278 folio_put(folio); in damon_pa_mark_accessed_or_deactivate()