Lines Matching defs:max_seq
3223 unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq)
3276 return lruvec->lrugen.max_seq - lruvec->lrugen.min_seq[type] + 1;
3501 hist = lru_hist_from_seq(walk->max_seq);
3555 * 1. It tries to start a new iteration with a stale max_seq: there is
3560 * counters and tell its caller to increment max_seq.
3564 VM_WARN_ON_ONCE(mm_state->seq + 1 < walk->max_seq);
3566 if (walk->max_seq <= mm_state->seq)
3600 reset_bloom_filter(lruvec, walk->max_seq + 1);
3610 static bool iterate_mm_list_nowalk(struct lruvec *lruvec, unsigned long max_seq)
3619 VM_WARN_ON_ONCE(mm_state->seq + 1 < max_seq);
3621 if (max_seq > mm_state->seq) {
3683 unsigned long seq = carryover ? lrugen->min_seq[type] : lrugen->max_seq + 1;
3974 int old_gen, new_gen = lru_gen_from_seq(walk->max_seq);
4042 int old_gen, new_gen = lru_gen_from_seq(walk->max_seq);
4179 if (!walk->force_scan && !test_bloom_filter(walk->lruvec, walk->max_seq, pmd + i))
4190 update_bloom_filter(walk->lruvec, walk->max_seq + 1, pmd + i);
4260 if (walk->max_seq != max_seq)
4365 while (min_seq[type] + MIN_NR_GENS <= lrugen->max_seq) {
4423 * the current max_seq need to be covered, since max_seq+1 can overlap
4427 prev = lru_gen_from_seq(lrugen->max_seq - 1);
4428 next = lru_gen_from_seq(lrugen->max_seq + 1);
4449 smp_store_release(&lrugen->max_seq, lrugen->max_seq + 1);
4454 static bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq,
4462 VM_WARN_ON_ONCE(max_seq > READ_ONCE(lrugen->max_seq));
4465 if (max_seq <= READ_ONCE(lruvec->mm_state.seq)) {
4477 success = iterate_mm_list_nowalk(lruvec, max_seq);
4483 success = iterate_mm_list_nowalk(lruvec, max_seq);
4488 walk->max_seq = max_seq;
4521 for (seq = min_seq[type]; seq <= max_seq; seq++) {
4625 int old_gen, new_gen = lru_gen_from_seq(max_seq);
4707 update_bloom_filter(lruvec, max_seq, pvmw->pmd);
5221 static bool should_run_aging(struct lruvec *lruvec, unsigned long max_seq,
5233 if (min_seq[!can_swap] + MIN_NR_GENS > max_seq) {
5241 for (seq = min_seq[type]; seq <= max_seq; seq++) {
5250 if (seq == max_seq)
5252 else if (seq + MIN_NR_GENS == max_seq)
5270 if (min_seq[!can_swap] + MIN_NR_GENS < max_seq)
5302 if (!should_run_aging(lruvec, max_seq, sc, can_swap, &nr_to_scan))
5310 return try_to_inc_max_seq(lruvec, max_seq, sc, can_swap, false) ? -1 : 0;
5872 unsigned long max_seq, unsigned long *min_seq,
5886 if (seq == max_seq) {
5909 if (seq == max_seq && NR_HIST_GENS == 1) {
5912 } else if (seq != max_seq && NR_HIST_GENS > 1) {
5948 else if (max_seq >= MAX_NR_GENS)
5949 seq = max_seq - MAX_NR_GENS + 1;
5953 for (; seq <= max_seq; seq++) {
5973 lru_gen_seq_show_full(m, lruvec, max_seq, min_seq, seq);
5992 if (seq < max_seq)
5995 if (seq > max_seq)
5998 if (!force_scan && min_seq[!can_swap] + MAX_NR_GENS - 1 <= max_seq)
6001 try_to_inc_max_seq(lruvec, max_seq, sc, can_swap, force_scan);
6011 if (seq + MIN_NR_GENS > max_seq)
6184 lrugen->max_seq = MIN_NR_GENS + 1;