/kernel/linux/linux-6.6/mm/ |
H A D | swap.c | 84 struct lruvec *lruvec; in __page_cache_release() local 87 lruvec = folio_lruvec_lock_irqsave(folio, &flags); in __page_cache_release() 88 lruvec_del_folio(lruvec, folio); in __page_cache_release() 90 unlock_page_lruvec_irqrestore(lruvec, flags); in __page_cache_release() 161 typedef void (*move_fn_t)(struct lruvec *lruvec, struct folio *folio); 163 static void lru_add_fn(struct lruvec *lruvec, struct folio *folio) in lru_add_fn() argument 199 lruvec_add_folio(lruvec, foli in lru_add_fn() 206 struct lruvec *lruvec = NULL; folio_batch_move_lru() local 237 lru_move_tail_fn(struct lruvec *lruvec, struct folio *folio) lru_move_tail_fn() argument 269 lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_io, unsigned int nr_rotated) lru_note_cost() argument 334 folio_activate_fn(struct lruvec *lruvec, struct folio *folio) folio_activate_fn() argument 380 struct lruvec *lruvec; folio_activate() local 568 lru_deactivate_file_fn(struct lruvec *lruvec, struct folio *folio) lru_deactivate_file_fn() argument 609 lru_deactivate_fn(struct lruvec *lruvec, struct folio *folio) lru_deactivate_fn() argument 625 lru_lazyfree_fn(struct lruvec *lruvec, struct folio *folio) lru_lazyfree_fn() argument 972 struct lruvec *lruvec = NULL; release_pages() local [all...] |
H A D | workingset.c | 191 * entry, and after storing the identifier for the lruvec there might 236 struct lruvec *lruvec; in lru_gen_eviction() local 247 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_eviction() 248 lrugen = &lruvec->lrugen; in lru_gen_eviction() 260 * Fills in @lruvec, @token, @workingset with the values unpacked from shadow. 262 static bool lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, in lru_gen_test_recent() argument 273 *lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_test_recent() 275 min_seq = READ_ONCE((*lruvec) in lru_gen_test_recent() 285 struct lruvec *lruvec; lru_gen_refault() local 333 lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, unsigned long *token, bool *workingset) lru_gen_test_recent() argument 355 workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages) workingset_age_nonresident() argument 385 struct lruvec *lruvec; workingset_eviction() local 541 struct lruvec *lruvec; workingset_refault() local 624 struct lruvec *lruvec; workingset_activation() local 729 struct lruvec *lruvec; count_shadow_nodes() local [all...] |
H A D | vmscan.c | 563 * @lruvec: lru vector 567 unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, in lruvec_lru_size() argument 574 if (!mem_cgroup_disabled() && is_node_lruvec(lruvec)) { in lruvec_lru_size() 576 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size() 589 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size() 595 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); in lruvec_lru_size() 2187 static __always_inline void update_lru_sizes(struct lruvec *lruvec, in update_lru_sizes() argument 2196 update_lru_size(lruvec, lr in update_lru_sizes() 2241 isolate_lru_folios(unsigned long nr_to_scan, struct lruvec *lruvec, struct list_head *dst, unsigned long *nr_scanned, struct scan_control *sc, enum lru_list lru) isolate_lru_folios() argument 2365 struct lruvec *lruvec; folio_isolate_lru() local 2427 move_folios_to_lru(struct lruvec *lruvec, struct list_head *list) move_folios_to_lru() argument 2524 shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) shrink_inactive_list() argument 2654 shrink_active_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) shrink_active_list() argument 2810 shrink_list(enum lru_list lru, unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc) shrink_list() argument 2852 inactive_is_low(struct lruvec *lruvec, enum lru_list inactive_lru) inactive_is_low() argument 2984 get_scan_count(struct lruvec *lruvec, struct scan_control *sc, unsigned long *nr) get_scan_count() argument 3245 struct lruvec *lruvec = &memcg->nodeinfo[nid]->lruvec; get_lruvec() local 3259 get_swappiness(struct lruvec *lruvec, struct scan_control *sc) get_swappiness() argument 3274 get_nr_gens(struct lruvec *lruvec, int type) get_nr_gens() argument 3279 seq_is_valid(struct lruvec *lruvec) seq_is_valid() argument 3330 test_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item) test_bloom_filter() argument 3345 update_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item) update_bloom_filter() argument 3363 reset_bloom_filter(struct lruvec *lruvec, unsigned long seq) reset_bloom_filter() argument 3413 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_add_mm() local 3442 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_del_mm() local 3493 reset_mm_stats(struct lruvec *lruvec, struct lru_gen_mm_walk *walk, bool last) reset_mm_stats() argument 3542 iterate_mm_list(struct lruvec *lruvec, struct lru_gen_mm_walk *walk, struct mm_struct **iter) iterate_mm_list() argument 3610 iterate_mm_list_nowalk(struct lruvec *lruvec, unsigned long max_seq) iterate_mm_list_nowalk() argument 3663 read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain, struct ctrl_pos *pos) read_ctrl_pos() argument 3678 reset_ctrl_pos(struct lruvec *lruvec, int type, bool carryover) reset_ctrl_pos() argument 3755 folio_inc_gen(struct lruvec *lruvec, struct folio *folio, bool reclaiming) folio_inc_gen() argument 3800 reset_batch_size(struct lruvec *lruvec, struct lru_gen_mm_walk *walk) reset_batch_size() argument 4241 walk_mm(struct lruvec *lruvec, struct mm_struct *mm, struct lru_gen_mm_walk *walk) walk_mm() argument 4318 inc_min_seq(struct lruvec *lruvec, int type, bool can_swap) inc_min_seq() argument 4354 try_to_inc_min_seq(struct lruvec *lruvec, bool can_swap) try_to_inc_min_seq() argument 4397 inc_max_seq(struct lruvec *lruvec, bool can_swap, bool force_scan) inc_max_seq() argument 4454 try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq, struct scan_control *sc, bool can_swap, bool force_scan) try_to_inc_max_seq() argument 4508 lruvec_is_sizable(struct lruvec *lruvec, struct scan_control *sc) lruvec_is_sizable() argument 4533 lruvec_is_reclaimable(struct lruvec *lruvec, struct scan_control *sc, unsigned long min_ttl) lruvec_is_reclaimable() argument 4572 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); lru_gen_age_node() local 4623 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); lru_gen_look_around() local 4725 lru_gen_memcg_seg(struct lruvec *lruvec) lru_gen_memcg_seg() argument 4730 lru_gen_rotate_memcg(struct lruvec *lruvec, int op) lru_gen_rotate_memcg() argument 4784 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_online_memcg() local 4806 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_offline_memcg() local 4819 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_release_memcg() local 4840 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_soft_reclaim() local 4849 lru_gen_memcg_seg(struct lruvec *lruvec) lru_gen_memcg_seg() argument 4860 sort_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc, int tier_idx) sort_folio() argument 4929 isolate_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc) isolate_folio() argument 4963 scan_folios(struct lruvec *lruvec, struct scan_control *sc, int type, int tier, struct list_head *list) scan_folios() argument 5039 get_tier_idx(struct lruvec *lruvec, int type) get_tier_idx() argument 5059 get_type_to_scan(struct lruvec *lruvec, int swappiness, int *tier_idx) get_type_to_scan() argument 5087 isolate_folios(struct lruvec *lruvec, struct scan_control *sc, int swappiness, int *type_scanned, struct list_head *list) isolate_folios() argument 5129 evict_folios(struct lruvec *lruvec, struct scan_control *sc, int swappiness) evict_folios() argument 5221 should_run_aging(struct lruvec *lruvec, unsigned long max_seq, struct scan_control *sc, bool can_swap, unsigned long *nr_to_scan) should_run_aging() argument 5293 get_nr_to_scan(struct lruvec *lruvec, struct scan_control *sc, bool can_swap) get_nr_to_scan() argument 5313 should_abort_scan(struct lruvec *lruvec, struct scan_control *sc) should_abort_scan() argument 5344 try_to_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) try_to_shrink_lruvec() argument 5379 shrink_one(struct lruvec *lruvec, struct scan_control *sc) shrink_one() argument 5429 struct lruvec *lruvec; shrink_many() local 5494 lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) lru_gen_shrink_lruvec() argument 5524 lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) lru_gen_shrink_lruvec() argument 5536 struct lruvec *lruvec = mem_cgroup_lruvec(NULL, pgdat); set_initial_priority() local 5601 state_is_valid(struct lruvec *lruvec) state_is_valid() argument 5624 fill_evictable(struct lruvec *lruvec) fill_evictable() argument 5655 drain_evictable(struct lruvec *lruvec) drain_evictable() argument 5708 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_change_state() local 5871 lru_gen_seq_show_full(struct seq_file *m, struct lruvec *lruvec, unsigned long max_seq, unsigned long *min_seq, unsigned long seq) lru_gen_seq_show_full() argument 5927 struct lruvec *lruvec = v; lru_gen_seq_show() local 5986 run_aging(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc, bool can_swap, bool force_scan) run_aging() argument 6006 run_eviction(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc, int swappiness, unsigned long nr_to_reclaim) run_eviction() argument 6037 struct lruvec *lruvec; run_cmd() local 6178 lru_gen_init_lruvec(struct lruvec *lruvec) lru_gen_init_lruvec() argument 6224 struct lruvec *lruvec = get_lruvec(memcg, nid); lru_gen_exit_memcg() local 6261 lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) lru_gen_shrink_lruvec() argument 6271 shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) shrink_lruvec() argument 6467 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); shrink_node_memcgs() local 6801 struct lruvec *lruvec; snapshot_refaults() local 6880 struct lruvec *lruvec; do_try_to_free_pages() local 7105 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); mem_cgroup_shrink_node() local 7195 struct lruvec *lruvec; kswapd_age_node() local 7284 struct lruvec *lruvec = mem_cgroup_lruvec(NULL, pgdat); clear_pgdat_congested() local 8159 struct lruvec *lruvec = NULL; check_move_unevictable_folios() local 8203 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdata); purgeable_node() local [all...] |
H A D | mlock.c | 61 static struct lruvec *__mlock_folio(struct folio *folio, struct lruvec *lruvec) in __mlock_folio() argument 65 return lruvec; in __mlock_folio() 67 lruvec = folio_lruvec_relock_irq(folio, lruvec); in __mlock_folio() 76 lruvec_del_folio(lruvec, folio); in __mlock_folio() 78 lruvec_add_folio(lruvec, folio); in __mlock_folio() 92 lruvec_del_folio(lruvec, folio); in __mlock_folio() 96 lruvec_add_folio(lruvec, foli in __mlock_folio() 103 __mlock_new_folio(struct folio *folio, struct lruvec *lruvec) __mlock_new_folio() argument 122 __munlock_folio(struct folio *folio, struct lruvec *lruvec) __munlock_folio() argument 188 struct lruvec *lruvec = NULL; mlock_folio_batch() local [all...] |
H A D | zswapd.c | 259 struct lruvec *lruvec = NULL; in get_memcg_anon_refault_status() local 272 lruvec = &mz->lruvec; in get_memcg_anon_refault_status() 273 if (!lruvec) in get_memcg_anon_refault_status() 276 anon_total = lruvec_lru_size(lruvec, LRU_ACTIVE_ANON, MAX_NR_ZONES) + in get_memcg_anon_refault_status() 277 lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, MAX_NR_ZONES) + in get_memcg_anon_refault_status() 481 struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) in zswapd_shrink_active_list() 488 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in zswapd_shrink_active_list() 480 zswapd_shrink_active_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) zswapd_shrink_active_list() argument 532 zswapd_shrink_list(enum lru_list lru, unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc) zswapd_shrink_list() argument 564 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); zswapd_shrink_anon_memcg() local 595 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); zswapd_shrink_anon() local [all...] |
H A D | mmzone.c | 75 void lruvec_init(struct lruvec *lruvec) in lruvec_init() argument 79 memset(lruvec, 0, sizeof(struct lruvec)); in lruvec_init() 80 spin_lock_init(&lruvec->lru_lock); in lruvec_init() 83 INIT_LIST_HEAD(&lruvec->lists[lru]); in lruvec_init() 90 list_del(&lruvec->lists[LRU_UNEVICTABLE]); in lruvec_init() 92 lru_gen_init_lruvec(lruvec); in lruvec_init()
|
H A D | memcg_reclaim.c | 38 struct lruvec *lruvec = node_lruvec(pgdat); in get_scan_count_hyperhold() local 86 if (!inactive_is_low(lruvec, LRU_INACTIVE_ANON) && in get_scan_count_hyperhold() 87 (lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, in get_scan_count_hyperhold() 102 * lruvec even if it has plenty of old anonymous pages unless the in get_scan_count_hyperhold() 107 !inactive_is_low(lruvec, LRU_INACTIVE_FILE) && in get_scan_count_hyperhold() 108 lruvec_lru_size(lruvec, LRU_INACTIVE_FILE, sc->reclaim_idx) >> sc->priority) { in get_scan_count_hyperhold() 152 lruvec_size = lruvec_lru_size(lruvec, lru, sc->reclaim_idx); in get_scan_count_hyperhold() 192 struct lruvec *lruvec in shrink_anon_memcg() local 249 struct lruvec *lruvec = NULL; shrink_anon() local 318 struct lruvec *lruvec = node_lruvec(pgdat); shrink_file() local [all...] |
H A D | memcg_control.c | 164 static unsigned long move_pages_to_page_list(struct lruvec *lruvec, enum lru_list lru, in move_pages_to_page_list() argument 167 struct list_head *src = &lruvec->lists[lru]; in move_pages_to_page_list() 209 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in reclaim_all_anon_memcg() local 225 move_pages_to_page_list(lruvec, LRU_INACTIVE_ANON, &page_list); in reclaim_all_anon_memcg() 288 struct lruvec *lruvec = NULL; in memcg_total_info_per_app_show() local 301 lruvec = &mz->lruvec; in memcg_total_info_per_app_show() 365 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdata); purgeable_memcg_node() local [all...] |
H A D | zswapd_control.c | 486 struct lruvec *lruvec = NULL; in memcg_active_app_info_list_show() local 500 lruvec = &mz->lruvec; in memcg_active_app_info_list_show() 501 if (!lruvec) { in memcg_active_app_info_list_show() 506 anon_size = lruvec_lru_size(lruvec, LRU_ACTIVE_ANON, in memcg_active_app_info_list_show() 507 MAX_NR_ZONES) + lruvec_lru_size(lruvec, in memcg_active_app_info_list_show() 685 struct lruvec *lruvec = NULL; in memcg_eswap_info_show() local 695 lruvec in memcg_eswap_info_show() [all...] |
/kernel/linux/linux-5.10/mm/ |
H A D | workingset.c | 178 * entry, and after storing the identifier for the lruvec there might 219 * @lruvec: the lruvec that was aged 227 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages) in workingset_age_nonresident() argument 241 atomic_long_add(nr_pages, &lruvec->nonresident_age); in workingset_age_nonresident() 242 } while ((lruvec = parent_lruvec(lruvec))); in workingset_age_nonresident() 257 struct lruvec *lruvec; in workingset_eviction() local 301 struct lruvec *lruvec; workingset_refault() local 453 struct lruvec *lruvec; workingset_activation() local 554 struct lruvec *lruvec; count_shadow_nodes() local [all...] |
H A D | swap.c | 83 struct lruvec *lruvec; in __page_cache_release() local 87 lruvec = mem_cgroup_page_lruvec(page, pgdat); in __page_cache_release() 90 del_page_from_lru_list(page, lruvec, page_off_lru(page)); in __page_cache_release() 207 void (*move_fn)(struct page *page, struct lruvec *lruvec, void *arg), in pagevec_lru_move_fn() 212 struct lruvec *lruvec; in pagevec_lru_move_fn() local 226 lruvec = mem_cgroup_page_lruvec(page, pgdat); in pagevec_lru_move_fn() 227 (*move_fn)(page, lruvec, ar in pagevec_lru_move_fn() 206 pagevec_lru_move_fn(struct pagevec *pvec, void (*move_fn)(struct page *page, struct lruvec *lruvec, void *arg), void *arg) pagevec_lru_move_fn() argument 235 pagevec_move_tail_fn(struct page *page, struct lruvec *lruvec, void *arg) pagevec_move_tail_fn() argument 281 lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_pages) lru_note_cost() argument 324 __activate_page(struct page *page, struct lruvec *lruvec, void *arg) __activate_page() argument 534 lru_deactivate_file_fn(struct page *page, struct lruvec *lruvec, void *arg) lru_deactivate_file_fn() argument 582 lru_deactivate_fn(struct page *page, struct lruvec *lruvec, void *arg) lru_deactivate_fn() argument 600 lru_lazyfree_fn(struct page *page, struct lruvec *lruvec, void *arg) lru_lazyfree_fn() argument 881 struct lruvec *lruvec; release_pages() local 985 lru_add_page_tail(struct page *page, struct page *page_tail, struct lruvec *lruvec, struct list_head *list) lru_add_page_tail() argument 1016 __pagevec_lru_add_fn(struct page *page, struct lruvec *lruvec, void *arg) __pagevec_lru_add_fn() argument [all...] |
H A D | vmscan.c | 222 * @lruvec: lru vector 226 unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) in lruvec_lru_size() argument 232 if (!mem_cgroup_disabled() && is_node_lruvec(lruvec)) { in lruvec_lru_size() 234 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size() 246 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size() 252 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); in lruvec_lru_size() 1560 static __always_inline void update_lru_sizes(struct lruvec *lruvec, in update_lru_sizes() argument 1569 update_lru_size(lruvec, lr in update_lru_sizes() 1593 isolate_lru_pages(unsigned long nr_to_scan, struct lruvec *lruvec, struct list_head *dst, unsigned long *nr_scanned, struct scan_control *sc, enum lru_list lru) isolate_lru_pages() argument 1715 struct lruvec *lruvec; isolate_lru_page() local 1788 move_pages_to_lru(struct lruvec *lruvec, struct list_head *list) move_pages_to_lru() argument 1877 shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) shrink_inactive_list() argument 1981 shrink_active_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) shrink_active_list() argument 2130 shrink_list(enum lru_list lru, unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc) shrink_list() argument 2188 inactive_is_low(struct lruvec *lruvec, enum lru_list inactive_lru) inactive_is_low() argument 2217 get_scan_count(struct lruvec *lruvec, struct scan_control *sc, unsigned long *nr) get_scan_count() argument 2413 shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) shrink_lruvec() argument 2605 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); shrink_node_memcgs() local 2983 struct lruvec *lruvec; snapshot_refaults() local 3056 struct lruvec *lruvec; do_try_to_free_pages() local 3285 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); mem_cgroup_shrink_node() local 3375 struct lruvec *lruvec; age_active_anon() local 3456 struct lruvec *lruvec = mem_cgroup_lruvec(NULL, pgdat); clear_pgdat_congested() local 4314 struct lruvec *lruvec; check_move_unevictable_pages() local 4370 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdata); purgeable_node() local [all...] |
H A D | zswapd.c | 258 struct lruvec *lruvec = NULL; in get_memcg_anon_refault_status() local 271 lruvec = &mz->lruvec; in get_memcg_anon_refault_status() 272 if (!lruvec) in get_memcg_anon_refault_status() 275 anon_total = lruvec_lru_size(lruvec, LRU_ACTIVE_ANON, MAX_NR_ZONES) + in get_memcg_anon_refault_status() 276 lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, MAX_NR_ZONES) + in get_memcg_anon_refault_status() 480 struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) in zswapd_shrink_active_list() 487 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in zswapd_shrink_active_list() 479 zswapd_shrink_active_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) zswapd_shrink_active_list() argument 531 zswapd_shrink_list(enum lru_list lru, unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc) zswapd_shrink_list() argument 563 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); zswapd_shrink_anon_memcg() local 594 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); zswapd_shrink_anon() local [all...] |
H A D | memcg_reclaim.c | 36 struct lruvec *lruvec = node_lruvec(pgdat); in get_scan_count_hyperhold() local 84 if (!inactive_is_low(lruvec, LRU_INACTIVE_ANON) && in get_scan_count_hyperhold() 85 (lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, in get_scan_count_hyperhold() 100 * lruvec even if it has plenty of old anonymous pages unless the in get_scan_count_hyperhold() 105 !inactive_is_low(lruvec, LRU_INACTIVE_FILE) && in get_scan_count_hyperhold() 106 lruvec_lru_size(lruvec, LRU_INACTIVE_FILE, sc->reclaim_idx) >> sc->priority) { in get_scan_count_hyperhold() 150 lruvec_size = lruvec_lru_size(lruvec, lru, sc->reclaim_idx); in get_scan_count_hyperhold() 190 struct lruvec *lruvec in shrink_anon_memcg() local 247 struct lruvec *lruvec = NULL; shrink_anon() local 316 struct lruvec *lruvec = node_lruvec(pgdat); shrink_file() local [all...] |
H A D | memcg_control.c | 164 static unsigned long move_pages_to_page_list(struct lruvec *lruvec, enum lru_list lru, in move_pages_to_page_list() argument 167 struct list_head *src = &lruvec->lists[lru]; in move_pages_to_page_list() 209 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in reclaim_all_anon_memcg() local 225 move_pages_to_page_list(lruvec, LRU_INACTIVE_ANON, &page_list); in reclaim_all_anon_memcg() 288 struct lruvec *lruvec = NULL; in memcg_total_info_per_app_show() local 301 lruvec = &mz->lruvec; in memcg_total_info_per_app_show() 365 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdata); purgeable_memcg_node() local [all...] |
H A D | mmzone.c | 75 void lruvec_init(struct lruvec *lruvec) in lruvec_init() argument 79 memset(lruvec, 0, sizeof(struct lruvec)); in lruvec_init() 82 INIT_LIST_HEAD(&lruvec->lists[lru]); in lruvec_init()
|
H A D | zswapd_control.c | 485 struct lruvec *lruvec = NULL; in memcg_active_app_info_list_show() local 499 lruvec = &mz->lruvec; in memcg_active_app_info_list_show() 500 if (!lruvec) { in memcg_active_app_info_list_show() 505 anon_size = lruvec_lru_size(lruvec, LRU_ACTIVE_ANON, in memcg_active_app_info_list_show() 506 MAX_NR_ZONES) + lruvec_lru_size(lruvec, in memcg_active_app_info_list_show() 684 struct lruvec *lruvec = NULL; in memcg_eswap_info_show() local 694 lruvec in memcg_eswap_info_show() [all...] |
H A D | internal.h | 237 extern unsigned long isolate_lru_pages(unsigned long nr_to_scan, struct lruvec *lruvec, 240 extern unsigned move_pages_to_lru(struct lruvec *lruvec, struct list_head *list); 241 extern void shrink_active_list(unsigned long nr_to_scan, struct lruvec *lruvec, 243 extern unsigned long shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, 245 extern void shrink_lruvec(struct lruvec *lruvec, struc [all...] |
/kernel/linux/linux-6.6/include/linux/ |
H A D | mm_inline.h | 37 static __always_inline void __update_lru_size(struct lruvec *lruvec, in __update_lru_size() argument 41 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in __update_lru_size() 43 lockdep_assert_held(&lruvec->lru_lock); in __update_lru_size() 46 __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); in __update_lru_size() 51 static __always_inline void update_lru_size(struct lruvec *lruvec, in update_lru_size() argument 55 __update_lru_size(lruvec, lru, zid, nr_pages); in update_lru_size() 57 mem_cgroup_update_lru_size(lruvec, lru, zid, nr_pages); in update_lru_size() 168 static inline bool lru_gen_is_active(struct lruvec *lruve argument 178 lru_gen_update_size(struct lruvec *lruvec, struct folio *folio, int old_gen, int new_gen) lru_gen_update_size() argument 224 lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) lru_gen_add_folio() argument 275 lru_gen_del_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) lru_gen_del_folio() argument 309 lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) lru_gen_add_folio() argument 314 lru_gen_del_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) lru_gen_del_folio() argument 322 lruvec_add_folio(struct lruvec *lruvec, struct folio *folio) lruvec_add_folio() argument 336 lruvec_add_folio_tail(struct lruvec *lruvec, struct folio *folio) lruvec_add_folio_tail() argument 350 lruvec_del_folio(struct lruvec *lruvec, struct folio *folio) lruvec_del_folio() argument [all...] |
H A D | memcontrol.h | 132 struct lruvec lruvec; member 740 * @memcg: memcg of the wanted lruvec 744 * @pgdat combination. This can be the node lruvec, if the memory 747 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec() 751 struct lruvec *lruvec; in mem_cgroup_lruvec() local 754 lruvec = &pgdat->__lruvec; in mem_cgroup_lruvec() 762 lruvec = &mz->lruvec; in mem_cgroup_lruvec() 801 lruvec_memcg_debug(struct lruvec *lruvec, struct folio *folio) lruvec_memcg_debug() argument 880 lruvec_memcg(struct lruvec *lruvec) lruvec_memcg() argument 943 mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) mem_cgroup_get_zone_lru_size() argument 1035 lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state() argument 1057 lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state_local() argument 1097 mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) mod_memcg_lruvec_state() argument 1342 lruvec_memcg_debug(struct lruvec *lruvec, struct folio *folio) lruvec_memcg_debug() argument 1453 lruvec_memcg(struct lruvec *lruvec) lruvec_memcg() argument 1464 mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) mem_cgroup_get_zone_lru_size() argument 1564 lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state() argument 1570 lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state_local() argument 1584 __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) __mod_memcg_lruvec_state() argument 1655 parent_lruvec(struct lruvec *lruvec) parent_lruvec() argument 1668 unlock_page_lruvec(struct lruvec *lruvec) unlock_page_lruvec() argument 1673 unlock_page_lruvec_irq(struct lruvec *lruvec) unlock_page_lruvec_irq() argument 1678 unlock_page_lruvec_irqrestore(struct lruvec *lruvec, unsigned long flags) unlock_page_lruvec_irqrestore() argument 1685 folio_matches_lruvec(struct folio *folio, struct lruvec *lruvec) folio_matches_lruvec() argument [all...] |
H A D | mmzone.h | 259 * Per-memcg and per-lruvec counters track memory, consumed in vmstat_item_in_bytes() 328 * An lruvec has many dirty pages backed by a congested BDI: 334 * Essentially, kswapd can unthrottle an lruvec throttled by cgroup 401 struct lruvec; 503 /* the lruvec under reclaim */ 504 struct lruvec *lruvec; member 519 void lru_gen_init_lruvec(struct lruvec *lruvec); 608 static inline void lru_gen_init_lruvec(struct lruvec *lruve argument 646 struct lruvec { global() struct 1484 lruvec_pgdat(struct lruvec *lruvec) lruvec_pgdat() argument 1494 is_node_lruvec(struct lruvec *lruvec) is_node_lruvec() argument [all...] |
H A D | vmstat.h | 546 void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, 549 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument 555 __mod_lruvec_state(lruvec, idx, val); in mod_lruvec_state() 574 static inline void __mod_lruvec_state(struct lruvec *lruvec, in __mod_lruvec_state() argument 577 __mod_node_page_state(lruvec_pgdat(lruvec), idx, val); in __mod_lruvec_state() 580 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument [all...] |
/kernel/linux/linux-5.10/include/linux/ |
H A D | mm_inline.h | 28 static __always_inline void __update_lru_size(struct lruvec *lruvec, in __update_lru_size() argument 32 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in __update_lru_size() 34 __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); in __update_lru_size() 39 static __always_inline void update_lru_size(struct lruvec *lruvec, in update_lru_size() argument 43 __update_lru_size(lruvec, lru, zid, nr_pages); in update_lru_size() 45 mem_cgroup_update_lru_size(lruvec, lru, zid, nr_pages); in update_lru_size() 50 struct lruvec *lruvec, enu in add_page_to_lru_list() 49 add_page_to_lru_list(struct page *page, struct lruvec *lruvec, enum lru_list lru) add_page_to_lru_list() argument 56 add_page_to_lru_list_tail(struct page *page, struct lruvec *lruvec, enum lru_list lru) add_page_to_lru_list_tail() argument 63 del_page_from_lru_list(struct page *page, struct lruvec *lruvec, enum lru_list lru) del_page_from_lru_list() argument [all...] |
H A D | memcontrol.h | 114 struct lruvec lruvec; member 473 * @memcg: memcg of the wanted lruvec 476 * @node combination. This can be the node lruvec, if the memory 479 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec() 483 struct lruvec *lruvec; in mem_cgroup_lruvec() local 486 lruvec = &pgdat->__lruvec; in mem_cgroup_lruvec() 494 lruvec = &mz->lruvec; in mem_cgroup_lruvec() 580 lruvec_memcg(struct lruvec *lruvec) lruvec_memcg() argument 653 mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) mem_cgroup_get_zone_lru_size() argument 780 lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state() argument 802 lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state_local() argument 845 mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) mod_memcg_lruvec_state() argument 855 mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) mod_lruvec_state() argument 881 struct lruvec *lruvec; __mod_lruvec_page_state() local 1134 lruvec_memcg(struct lruvec *lruvec) lruvec_memcg() argument 1145 mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) mem_cgroup_get_zone_lru_size() argument 1251 lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state() argument 1257 lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx) lruvec_page_state_local() argument 1263 __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) __mod_memcg_lruvec_state() argument 1268 __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) __mod_lruvec_state() argument 1274 mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) mod_lruvec_state() argument 1375 __inc_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx) __inc_lruvec_state() argument 1381 __dec_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx) __dec_lruvec_state() argument 1437 inc_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx) inc_lruvec_state() argument 1443 dec_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx) dec_lruvec_state() argument 1461 parent_lruvec(struct lruvec *lruvec) parent_lruvec() argument [all...] |
H A D | swap.h | 316 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages); 337 extern void lru_note_cost(struct lruvec *lruvec, bool file, 342 struct lruvec *lruvec, struct list_head *head); 386 struct lruvec *lruvec, 388 extern bool inactive_is_low(struct lruvec *lruvec, enu [all...] |