Lines Matching refs:folio

19 static bool __damon_pa_mkold(struct folio *folio, struct vm_area_struct *vma,
22 DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0);
36 struct folio *folio = damon_get_folio(PHYS_PFN(paddr));
43 if (!folio)
46 if (!folio_mapped(folio) || !folio_raw_mapping(folio)) {
47 folio_set_idle(folio);
51 need_lock = !folio_test_anon(folio) || folio_test_ksm(folio);
52 if (need_lock && !folio_trylock(folio))
55 rmap_walk(folio, &rwc);
58 folio_unlock(folio);
61 folio_put(folio);
82 static bool __damon_pa_young(struct folio *folio, struct vm_area_struct *vma,
86 DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0);
93 !folio_test_idle(folio) ||
98 !folio_test_idle(folio) ||
116 struct folio *folio = damon_get_folio(PHYS_PFN(paddr));
125 if (!folio)
128 if (!folio_mapped(folio) || !folio_raw_mapping(folio)) {
129 if (folio_test_idle(folio))
136 need_lock = !folio_test_anon(folio) || folio_test_ksm(folio);
137 if (need_lock && !folio_trylock(folio))
140 rmap_walk(folio, &rwc);
143 folio_unlock(folio);
146 *folio_sz = folio_size(folio);
147 folio_put(folio);
188 struct folio *folio)
195 matched = folio_test_anon(folio);
199 memcg = folio_memcg_check(folio);
216 static bool damos_pa_filter_out(struct damos *scheme, struct folio *folio)
221 if (__damos_pa_filter_out(filter, folio))
233 struct folio *folio = damon_get_folio(PHYS_PFN(addr));
235 if (!folio)
238 if (damos_pa_filter_out(s, folio))
241 folio_clear_referenced(folio);
242 folio_test_clear_young(folio);
243 if (!folio_isolate_lru(folio))
245 if (folio_test_unevictable(folio))
246 folio_putback_lru(folio);
248 list_add(&folio->lru, &folio_list);
250 folio_put(folio);
263 struct folio *folio = damon_get_folio(PHYS_PFN(addr));
265 if (!folio)
268 if (damos_pa_filter_out(s, folio))
272 folio_mark_accessed(folio);
274 folio_deactivate(folio);
275 applied += folio_nr_pages(folio);
277 folio_put(folio);