Lines Matching full:gen
164 static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen) in lru_gen_is_active() argument
168 VM_WARN_ON_ONCE(gen >= MAX_NR_GENS); in lru_gen_is_active()
171 return gen == lru_gen_from_seq(max_seq) || gen == lru_gen_from_seq(max_seq - 1); in lru_gen_is_active()
223 int gen; in lru_gen_folio_seq() local
240 gen = MIN_NR_GENS - folio_test_workingset(folio); in lru_gen_folio_seq()
242 gen = MAX_NR_GENS; in lru_gen_folio_seq()
246 gen = MIN_NR_GENS; in lru_gen_folio_seq()
248 gen = MAX_NR_GENS - folio_test_workingset(folio); in lru_gen_folio_seq()
250 return max(READ_ONCE(lrugen->max_seq) - gen + 1, READ_ONCE(lrugen->min_seq[type])); in lru_gen_folio_seq()
257 int gen = folio_lru_gen(folio); in lru_gen_add_folio() local
262 VM_WARN_ON_ONCE_FOLIO(gen != -1, folio); in lru_gen_add_folio()
268 gen = lru_gen_from_seq(seq); in lru_gen_add_folio()
269 flags = (gen + 1UL) << LRU_GEN_PGOFF; in lru_gen_add_folio()
273 lru_gen_update_size(lruvec, folio, -1, gen); in lru_gen_add_folio()
276 list_add_tail(&folio->lru, &lrugen->folios[gen][type][zone]); in lru_gen_add_folio()
278 list_add(&folio->lru, &lrugen->folios[gen][type][zone]); in lru_gen_add_folio()
286 int gen = folio_lru_gen(folio); in lru_gen_del_folio() local
288 if (gen < 0) in lru_gen_del_folio()
295 flags = !reclaiming && lru_gen_is_active(lruvec, gen) ? BIT(PG_active) : 0; in lru_gen_del_folio()
297 gen = ((flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1; in lru_gen_del_folio()
299 lru_gen_update_size(lruvec, folio, gen, -1); in lru_gen_del_folio()