Lines Matching refs:seq

2735 #define get_memcg_gen(seq)	((seq) % MEMCG_NR_GENS)  argument
2820 static inline int filter_gen_from_seq(unsigned long seq) in filter_gen_from_seq() argument
2822 return seq % NR_BLOOM_FILTERS; in filter_gen_from_seq()
2835 static bool test_bloom_filter(struct lru_gen_mm_state *mm_state, unsigned long seq, in test_bloom_filter() argument
2840 int gen = filter_gen_from_seq(seq); in test_bloom_filter()
2851 static void update_bloom_filter(struct lru_gen_mm_state *mm_state, unsigned long seq, in update_bloom_filter() argument
2856 int gen = filter_gen_from_seq(seq); in update_bloom_filter()
2870 static void reset_bloom_filter(struct lru_gen_mm_state *mm_state, unsigned long seq) in reset_bloom_filter() argument
2873 int gen = filter_gen_from_seq(seq); in reset_bloom_filter()
3055 hist = lru_hist_from_seq(walk->seq); in reset_mm_stats()
3064 hist = lru_hist_from_seq(walk->seq + 1); in reset_mm_stats()
3093 VM_WARN_ON_ONCE(mm_state->seq + 1 < walk->seq); in iterate_mm_list()
3095 if (walk->seq <= mm_state->seq) in iterate_mm_list()
3107 WRITE_ONCE(mm_state->seq, mm_state->seq + 1); in iterate_mm_list()
3125 reset_bloom_filter(mm_state, walk->seq + 1); in iterate_mm_list()
3135 static bool iterate_mm_list_nowalk(struct lruvec *lruvec, unsigned long seq) in iterate_mm_list_nowalk() argument
3144 VM_WARN_ON_ONCE(mm_state->seq + 1 < seq); in iterate_mm_list_nowalk()
3146 if (seq > mm_state->seq) { in iterate_mm_list_nowalk()
3149 WRITE_ONCE(mm_state->seq, mm_state->seq + 1); in iterate_mm_list_nowalk()
3211 unsigned long seq = carryover ? lrugen->min_seq[type] : lrugen->max_seq + 1; in reset_ctrl_pos() local
3218 hist = lru_hist_from_seq(seq); in reset_ctrl_pos()
3741 if (!walk->force_scan && !test_bloom_filter(mm_state, walk->seq, pmd + i)) in walk_pmd_range()
3752 update_bloom_filter(mm_state, walk->seq + 1, pmd + i); in walk_pmd_range()
3821 if (walk->seq != max_seq) in walk_mm()
3963 unsigned long seq = lrugen->max_seq - MIN_NR_GENS; in try_to_inc_min_seq() local
3965 if (min_seq[LRU_GEN_ANON] > seq && min_seq[LRU_GEN_FILE] < seq) in try_to_inc_min_seq()
3966 min_seq[LRU_GEN_ANON] = seq; in try_to_inc_min_seq()
3967 else if (min_seq[LRU_GEN_FILE] > seq && min_seq[LRU_GEN_ANON] < seq) in try_to_inc_min_seq()
3968 min_seq[LRU_GEN_FILE] = seq; in try_to_inc_min_seq()
3983 static bool inc_max_seq(struct lruvec *lruvec, unsigned long seq, int swappiness) in inc_max_seq() argument
3990 if (seq < READ_ONCE(lrugen->max_seq)) in inc_max_seq()
3997 success = seq == lrugen->max_seq; in inc_max_seq()
4048 static bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long seq, in try_to_inc_max_seq() argument
4057 VM_WARN_ON_ONCE(seq > READ_ONCE(lrugen->max_seq)); in try_to_inc_max_seq()
4060 return inc_max_seq(lruvec, seq, swappiness); in try_to_inc_max_seq()
4063 if (seq <= READ_ONCE(mm_state->seq)) in try_to_inc_max_seq()
4073 success = iterate_mm_list_nowalk(lruvec, seq); in try_to_inc_max_seq()
4079 success = iterate_mm_list_nowalk(lruvec, seq); in try_to_inc_max_seq()
4084 walk->seq = seq; in try_to_inc_max_seq()
4095 success = inc_max_seq(lruvec, seq, swappiness); in try_to_inc_max_seq()
4143 unsigned long seq; in lruvec_is_sizable() local
4145 for (seq = min_seq[type]; seq <= max_seq; seq++) { in lruvec_is_sizable()
4146 gen = lru_gen_from_seq(seq); in lruvec_is_sizable()
4358 new = get_memcg_gen(pgdat->memcg_lru.seq); in lru_gen_rotate_memcg()
4360 new = get_memcg_gen(pgdat->memcg_lru.seq + 1); in lru_gen_rotate_memcg()
4377 if (!pgdat->memcg_lru.nr_memcgs[old] && old == get_memcg_gen(pgdat->memcg_lru.seq)) in lru_gen_rotate_memcg()
4378 WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1); in lru_gen_rotate_memcg()
4399 gen = get_memcg_gen(pgdat->memcg_lru.seq); in lru_gen_online_memcg()
4440 if (!pgdat->memcg_lru.nr_memcgs[gen] && gen == get_memcg_gen(pgdat->memcg_lru.seq)) in lru_gen_release_memcg()
4441 WRITE_ONCE(pgdat->memcg_lru.seq, pgdat->memcg_lru.seq + 1); in lru_gen_release_memcg()
4817 unsigned long seq; in should_run_aging() local
4819 for (seq = min_seq[type]; seq <= max_seq; seq++) { in should_run_aging()
4820 gen = lru_gen_from_seq(seq); in should_run_aging()
4984 gen = get_memcg_gen(READ_ONCE(pgdat->memcg_lru.seq)); in shrink_many()
5382 unsigned long seq) in lru_gen_seq_show_full() argument
5386 int hist = lru_hist_from_seq(seq); in lru_gen_seq_show_full()
5396 if (seq == max_seq) { in lru_gen_seq_show_full()
5400 } else if (seq == min_seq[type] || NR_HIST_GENS > 1) { in lru_gen_seq_show_full()
5421 if (seq == max_seq && NR_HIST_GENS == 1) { in lru_gen_seq_show_full()
5424 } else if (seq != max_seq && NR_HIST_GENS > 1) { in lru_gen_seq_show_full()
5437 unsigned long seq; in lru_gen_seq_show() local
5459 seq = evictable_min_seq(min_seq, MAX_SWAPPINESS / 2); in lru_gen_seq_show()
5461 seq = max_seq - MAX_NR_GENS + 1; in lru_gen_seq_show()
5463 seq = 0; in lru_gen_seq_show()
5465 for (; seq <= max_seq; seq++) { in lru_gen_seq_show()
5467 int gen = lru_gen_from_seq(seq); in lru_gen_seq_show()
5470 seq_printf(m, " %10lu %10u", seq, jiffies_to_msecs(jiffies - birth)); in lru_gen_seq_show()
5474 char mark = full && seq < min_seq[type] ? 'x' : ' '; in lru_gen_seq_show()
5485 lru_gen_seq_show_full(m, lruvec, max_seq, min_seq, seq); in lru_gen_seq_show()
5498 static int run_aging(struct lruvec *lruvec, unsigned long seq, in run_aging() argument
5503 if (seq > max_seq) in run_aging()
5509 static int run_eviction(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc, in run_eviction() argument
5514 if (seq + MIN_NR_GENS > max_seq) in run_eviction()
5522 if (seq < evictable_min_seq(min_seq, swappiness)) in run_eviction()
5538 static int run_cmd(char cmd, int memcg_id, int nid, unsigned long seq, in run_cmd() argument
5573 err = run_aging(lruvec, seq, swappiness, opt); in run_cmd()
5576 err = run_eviction(lruvec, seq, sc, swappiness, opt); in run_cmd()
5628 unsigned long seq; in lru_gen_seq_write() local
5637 &seq, &end, swap_string, &end, &opt, &end); in lru_gen_seq_write()
5654 err = run_cmd(cmd, memcg_id, nid, seq, &sc, swappiness, opt); in lru_gen_seq_write()
5722 mm_state->seq = MIN_NR_GENS; in lru_gen_init_lruvec()