Home
last modified time | relevance | path

Searched refs:lrugen (Results 1 – 6 of 6) sorted by relevance

/linux/include/linux/
H A Dmm_inline.h166 unsigned long max_seq = lruvec->lrugen.max_seq; in lru_gen_is_active()
181 struct lru_gen_folio *lrugen = &lruvec->lrugen; in lru_gen_update_size() local
188 WRITE_ONCE(lrugen->nr_pages[old_gen][type][zone], in lru_gen_update_size()
189 lrugen->nr_pages[old_gen][type][zone] - delta); in lru_gen_update_size()
191 WRITE_ONCE(lrugen->nr_pages[new_gen][type][zone], in lru_gen_update_size()
192 lrugen->nr_pages[new_gen][type][zone] + delta); in lru_gen_update_size()
226 const struct lru_gen_folio *lrugen = &lruvec->lrugen; in lru_gen_folio_seq() local
251 return max(READ_ONCE(lrugen->max_seq) - gen + 1, READ_ONCE(lrugen->min_seq[type])); in lru_gen_folio_seq()
261 struct lru_gen_folio *lrugen = &lruvec->lrugen; in lru_gen_add_folio() local
265 if (folio_test_unevictable(folio) || !lrugen->enabled) in lru_gen_add_folio()
[all …]
H A Dmmzone.h688 struct lru_gen_folio lrugen; member
/linux/mm/
H A Dvmscan.c2713 unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq)
2717 READ_ONCE((lruvec)->lrugen.min_seq[LRU_GEN_ANON]), \
2718 READ_ONCE((lruvec)->lrugen.min_seq[LRU_GEN_FILE]), \
2776 return lruvec->lrugen.max_seq - lruvec->lrugen.min_seq[type] + 1; in get_nr_gens()
3192 struct lru_gen_folio *lrugen = &lruvec->lrugen; in read_ctrl_pos() local
3193 int hist = lru_hist_from_seq(lrugen->min_seq[type]); in read_ctrl_pos()
3199 pos->refaulted += lrugen->avg_refaulted[type][i] + in read_ctrl_pos()
3200 atomic_long_read(&lrugen->refaulted[hist][type][i]); in read_ctrl_pos()
3201 pos->total += lrugen->avg_total[type][i] + in read_ctrl_pos()
3202 lrugen->protected[hist][type][i] + in read_ctrl_pos()
[all …]
H A Dworkingset.c238 struct lru_gen_folio *lrugen; in lru_gen_eviction() local
250 lrugen = &lruvec->lrugen; in lru_gen_eviction()
251 min_seq = READ_ONCE(lrugen->min_seq[type]); in lru_gen_eviction()
255 atomic_long_add(delta, &lrugen->evicted[hist][type][tier]); in lru_gen_eviction()
277 max_seq = READ_ONCE((*lruvec)->lrugen.max_seq); in lru_gen_test_recent()
290 struct lru_gen_folio *lrugen; in lru_gen_refault() local
305 lrugen = &lruvec->lrugen; in lru_gen_refault()
307 hist = lru_hist_from_seq(READ_ONCE(lrugen->min_seq[type])); in lru_gen_refault()
311 atomic_long_add(delta, &lrugen->refaulted[hist][type][tier]); in lru_gen_refault()
H A Dswap.c415 struct lru_gen_folio *lrugen; in lru_gen_clear_refs() local
424 lrugen = &folio_lruvec(folio)->lrugen; in lru_gen_clear_refs()
426 return gen == lru_gen_from_seq(READ_ONCE(lrugen->min_seq[type])); in lru_gen_clear_refs()
/linux/Documentation/mm/
H A Dmultigen_lru.rst84 ``lrugen->max_seq`` for both anon and file types as they are aged on
86 ``lrugen->min_seq[]`` separately for anon and file types as clean file
92 truncated generation number is an index to ``lrugen->folios[]``. The
96 ``lrugen->folios[]``; otherwise it stores zero.
100 generations, tiers do not have dedicated ``lrugen->folios[]``. In
131 increments ``min_seq`` when ``lrugen->folios[]`` indexed by