Lines Matching defs: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);
189 struct folio *folio)
196 matched = folio_test_anon(folio);
200 memcg = folio_memcg_check(folio);
217 static bool damos_pa_filter_out(struct damos *scheme, struct folio *folio)
222 if (__damos_pa_filter_out(filter, folio))
234 struct folio *folio = damon_get_folio(PHYS_PFN(addr));
236 if (!folio)
239 if (damos_pa_filter_out(s, folio))
242 folio_clear_referenced(folio);
243 folio_test_clear_young(folio);
244 if (!folio_isolate_lru(folio))
246 if (folio_test_unevictable(folio))
247 folio_putback_lru(folio);
249 list_add(&folio->lru, &folio_list);
251 folio_put(folio);
264 struct folio *folio = damon_get_folio(PHYS_PFN(addr));
266 if (!folio)
269 if (damos_pa_filter_out(s, folio))
273 folio_mark_accessed(folio);
275 folio_deactivate(folio);
276 applied += folio_nr_pages(folio);
278 folio_put(folio);