/linux-master/include/linux/ |
H A D | zswap.h | 8 struct lruvec; 36 void zswap_lruvec_state_init(struct lruvec *lruvec); 60 static inline void zswap_lruvec_state_init(struct lruvec *lruvec) {} argument
|
H A D | mm_inline.h | 38 static __always_inline void __update_lru_size(struct lruvec *lruvec, argument 42 struct pglist_data *pgdat = lruvec_pgdat(lruvec); 44 lockdep_assert_held(&lruvec->lru_lock); 47 __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); 52 static __always_inline void update_lru_size(struct lruvec *lruvec, argument 56 __update_lru_size(lruvec, lru, zid, nr_pages); 58 mem_cgroup_update_lru_size(lruvec, lru, zid, nr_pages); 165 static inline bool lru_gen_is_active(struct lruvec *lruve argument 175 lru_gen_update_size(struct lruvec *lruvec, struct folio *folio, int old_gen, int new_gen) argument 221 lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) argument 272 lru_gen_del_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) argument 306 lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) argument 311 lru_gen_del_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) argument 319 lruvec_add_folio(struct lruvec *lruvec, struct folio *folio) argument 333 lruvec_add_folio_tail(struct lruvec *lruvec, struct folio *folio) argument 347 lruvec_del_folio(struct lruvec *lruvec, struct folio *folio) argument [all...] |
H A D | memcontrol.h | 116 struct lruvec lruvec; member in struct:mem_cgroup_per_node 730 * @memcg: memcg of the wanted lruvec 734 * @pgdat combination. This can be the node lruvec, if the memory 737 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, 741 struct lruvec *lruvec; local 744 lruvec = &pgdat->__lruvec; 752 lruvec = &mz->lruvec; 793 lruvec_memcg_debug(struct lruvec *lruvec, struct folio *folio) argument 873 lruvec_memcg(struct lruvec *lruvec) argument 931 mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) argument 1023 lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) argument 1041 lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx) argument 1076 mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) argument 1327 lruvec_memcg_debug(struct lruvec *lruvec, struct folio *folio) argument 1448 lruvec_memcg(struct lruvec *lruvec) argument 1459 mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) argument 1559 lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) argument 1565 lruvec_page_state_local(struct lruvec *lruvec, enum node_stat_item idx) argument 1579 __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) argument 1645 parent_lruvec(struct lruvec *lruvec) argument 1658 unlock_page_lruvec(struct lruvec *lruvec) argument 1663 unlock_page_lruvec_irq(struct lruvec *lruvec) argument 1668 unlock_page_lruvec_irqrestore(struct lruvec *lruvec, unsigned long flags) argument 1675 folio_matches_lruvec(struct folio *folio, struct lruvec *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, argument 555 __mod_lruvec_state(lruvec, idx, val); 580 static inline void __mod_lruvec_state(struct lruvec *lruvec, argument 583 __mod_node_page_state(lruvec_pgdat(lruvec), idx, val); 586 static inline void mod_lruvec_state(struct lruvec *lruvec, argument [all...] |
H A D | mmzone.h | 252 * Per-memcg and per-lruvec counters track memory, consumed 310 * An lruvec has many dirty pages backed by a congested BDI: 316 * Essentially, kswapd can unthrottle an lruvec throttled by cgroup 383 struct lruvec; 483 /* the lruvec under reclaim */ 484 struct lruvec *lruvec; member in struct:lru_gen_mm_walk 556 void lru_gen_init_lruvec(struct lruvec *lruvec); 572 static inline void lru_gen_init_lruvec(struct lruvec *lruve argument 606 struct lruvec { struct 1455 lruvec_pgdat(struct lruvec *lruvec) argument [all...] |
H A D | swap.h | 348 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages); 361 void lru_note_cost(struct lruvec *lruvec, bool file,
|
/linux-master/mm/ |
H A D | swap.c | 77 static void __page_cache_release(struct folio *folio, struct lruvec **lruvecp, 107 struct lruvec *lruvec = NULL; local 110 __page_cache_release(folio, &lruvec, &flags); 111 if (lruvec) 112 unlock_page_lruvec_irqrestore(lruvec, flags); 177 typedef void (*move_fn_t)(struct lruvec *lruvec, struct folio *folio); 179 static void lru_add_fn(struct lruvec *lruvec, struc argument 222 struct lruvec *lruvec = NULL; local 252 lru_move_tail_fn(struct lruvec *lruvec, struct folio *folio) argument 284 lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_io, unsigned int nr_rotated) argument 342 folio_activate_fn(struct lruvec *lruvec, struct folio *folio) argument 388 struct lruvec *lruvec; local 576 lru_deactivate_file_fn(struct lruvec *lruvec, struct folio *folio) argument 617 lru_deactivate_fn(struct lruvec *lruvec, struct folio *folio) argument 633 lru_lazyfree_fn(struct lruvec *lruvec, struct folio *folio) argument 981 struct lruvec *lruvec = NULL; local [all...] |
H A D | mmzone.c | 75 void lruvec_init(struct lruvec *lruvec) argument 79 memset(lruvec, 0, sizeof(struct lruvec)); 80 spin_lock_init(&lruvec->lru_lock); 81 zswap_lruvec_state_init(lruvec); 84 INIT_LIST_HEAD(&lruvec->lists[lru]); 91 list_del(&lruvec->lists[LRU_UNEVICTABLE]); 93 lru_gen_init_lruvec(lruvec);
|
H A D | workingset.c | 192 * entry, and after storing the identifier for the lruvec there might 237 struct lruvec *lruvec; local 248 lruvec = mem_cgroup_lruvec(memcg, pgdat); 249 lrugen = &lruvec->lrugen; 261 * Fills in @lruvec, @token, @workingset with the values unpacked from shadow. 263 static bool lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, argument 274 *lruvec = mem_cgroup_lruvec(memcg, pgdat); 276 min_seq = READ_ONCE((*lruvec) 286 struct lruvec *lruvec; local 334 lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, unsigned long *token, bool *workingset) argument 356 workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages) argument 386 struct lruvec *lruvec; local 535 struct lruvec *lruvec; local 681 struct lruvec *lruvec; local [all...] |
H A D | vmscan.c | 362 * @lruvec: lru vector 366 static unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, argument 373 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; 379 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); 1558 static __always_inline void update_lru_sizes(struct lruvec *lruvec, argument 1567 update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); 1592 * Isolating page from the lruvec to fill in @dst list by nr_to_scan times. 1594 * lruvec 1612 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) argument 1735 struct lruvec *lruvec; local 1796 move_folios_to_lru(struct lruvec *lruvec, struct list_head *list) argument 1880 shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) argument 1998 shrink_active_list(unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc, enum lru_list lru) argument 2152 shrink_list(enum lru_list lru, unsigned long nr_to_scan, struct lruvec *lruvec, struct scan_control *sc) argument 2194 inactive_is_low(struct lruvec *lruvec, enum lru_list inactive_lru) argument 2334 get_scan_count(struct lruvec *lruvec, struct scan_control *sc, unsigned long *nr) argument 2595 struct lruvec *lruvec = &memcg->nodeinfo[nid]->lruvec; local 2609 get_swappiness(struct lruvec *lruvec, struct scan_control *sc) argument 2624 get_nr_gens(struct lruvec *lruvec, int type) argument 2629 seq_is_valid(struct lruvec *lruvec) argument 2753 get_mm_state(struct lruvec *lruvec) argument 2790 struct lruvec *lruvec = get_lruvec(memcg, nid); local 2820 struct lruvec *lruvec = get_lruvec(memcg, nid); local 2879 get_mm_state(struct lruvec *lruvec) argument 2895 struct lruvec *lruvec = walk->lruvec; local 2921 struct lruvec *lruvec = walk->lruvec; local 2980 iterate_mm_list_nowalk(struct lruvec *lruvec, unsigned long seq) argument 3032 read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain, struct ctrl_pos *pos) argument 3047 reset_ctrl_pos(struct lruvec *lruvec, int type, bool carryover) argument 3124 folio_inc_gen(struct lruvec *lruvec, struct folio *folio, bool reclaiming) argument 3172 struct lruvec *lruvec = walk->lruvec; local 3613 struct lruvec *lruvec = walk->lruvec; local 3682 inc_min_seq(struct lruvec *lruvec, int type, bool can_swap) argument 3718 try_to_inc_min_seq(struct lruvec *lruvec, bool can_swap) argument 3761 inc_max_seq(struct lruvec *lruvec, unsigned long seq, bool can_swap, bool force_scan) argument 3829 try_to_inc_max_seq(struct lruvec *lruvec, unsigned long seq, bool can_swap, bool force_scan) argument 3887 lruvec_is_sizable(struct lruvec *lruvec, struct scan_control *sc) argument 3912 lruvec_is_reclaimable(struct lruvec *lruvec, struct scan_control *sc, unsigned long min_ttl) argument 3951 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); local 4002 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); local 4103 lru_gen_rotate_memcg(struct lruvec *lruvec, int op) argument 4159 struct lruvec *lruvec = get_lruvec(memcg, nid); local 4181 struct lruvec *lruvec = get_lruvec(memcg, nid); local 4194 struct lruvec *lruvec = get_lruvec(memcg, nid); local 4215 struct lruvec *lruvec = get_lruvec(memcg, nid); local 4228 sort_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc, int tier_idx) argument 4297 isolate_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc) argument 4331 scan_folios(struct lruvec *lruvec, struct scan_control *sc, int type, int tier, struct list_head *list) argument 4412 get_tier_idx(struct lruvec *lruvec, int type) argument 4432 get_type_to_scan(struct lruvec *lruvec, int swappiness, int *tier_idx) argument 4460 isolate_folios(struct lruvec *lruvec, struct scan_control *sc, int swappiness, int *type_scanned, struct list_head *list) argument 4507 evict_folios(struct lruvec *lruvec, struct scan_control *sc, int swappiness) argument 4600 should_run_aging(struct lruvec *lruvec, unsigned long max_seq, bool can_swap, unsigned long *nr_to_scan) argument 4665 get_nr_to_scan(struct lruvec *lruvec, struct scan_control *sc, bool can_swap) argument 4689 should_abort_scan(struct lruvec *lruvec, struct scan_control *sc) argument 4720 try_to_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) argument 4751 shrink_one(struct lruvec *lruvec, struct scan_control *sc) argument 4799 struct lruvec *lruvec; local 4863 lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) argument 4952 state_is_valid(struct lruvec *lruvec) argument 4975 fill_evictable(struct lruvec *lruvec) argument 5006 drain_evictable(struct lruvec *lruvec) argument 5059 struct lruvec *lruvec = get_lruvec(memcg, nid); local 5222 lru_gen_seq_show_full(struct seq_file *m, struct lruvec *lruvec, unsigned long max_seq, unsigned long *min_seq, unsigned long seq) argument 5282 struct lruvec *lruvec = v; local 5341 run_aging(struct lruvec *lruvec, unsigned long seq, bool can_swap, bool force_scan) argument 5361 run_eviction(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc, int swappiness, unsigned long nr_to_reclaim) argument 5392 struct lruvec *lruvec; local 5545 lru_gen_init_lruvec(struct lruvec *lruvec) argument 5587 struct lruvec *lruvec = get_lruvec(memcg, nid); local 5629 lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) argument 5641 shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) argument 5836 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); local 6240 struct lruvec *lruvec; local 6465 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); local 6542 struct lruvec *lruvec; local 6631 struct lruvec *lruvec = mem_cgroup_lruvec(NULL, pgdat); local 7501 struct lruvec *lruvec = NULL; local [all...] |
H A D | mlock.c | 61 static struct lruvec *__mlock_folio(struct folio *folio, struct lruvec *lruvec) argument 65 return lruvec; 67 lruvec = folio_lruvec_relock_irq(folio, lruvec); 76 lruvec_del_folio(lruvec, folio); 78 lruvec_add_folio(lruvec, folio); 92 lruvec_del_folio(lruvec, folio); 96 lruvec_add_folio(lruvec, foli 103 __mlock_new_folio(struct folio *folio, struct lruvec *lruvec) argument 122 __munlock_folio(struct folio *folio, struct lruvec *lruvec) argument 188 struct lruvec *lruvec = NULL; local [all...] |
H A D | zswap.c | 739 struct lruvec *lruvec; local 760 lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid)); 761 nr_zswap_protected = &lruvec->zswap_lruvec_state.nr_zswap_protected; 785 void zswap_lruvec_state_init(struct lruvec *lruvec) argument 787 atomic_long_set(&lruvec->zswap_lruvec_state.nr_zswap_protected, 0); 792 struct lruvec *lruvec; local 795 lruvec 1278 struct lruvec *lruvec = mem_cgroup_lruvec(sc->memcg, NODE_DATA(sc->nid)); local 1320 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(sc->nid)); local [all...] |
H A D | memcontrol.c | 665 * memcg and lruvec stats flushing 839 void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, argument 845 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); 872 /* Update lruvec */ 880 * __mod_lruvec_state - update lruvec memory statistics 881 * @lruvec: the lruvec 885 * The lruvec i 889 __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, int val) argument 905 struct lruvec *lruvec; local 926 struct lruvec *lruvec; local 1343 lruvec_memcg_debug(struct lruvec *lruvec, struct folio *folio) argument 1373 struct lruvec *lruvec = folio_lruvec(folio); local 1396 struct lruvec *lruvec = folio_lruvec(folio); local 1421 struct lruvec *lruvec = folio_lruvec(folio); local 1439 mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, int zid, int nr_pages) argument 2998 struct lruvec *lruvec; local 4177 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid)); local 6903 lruvec_page_state_output(struct lruvec *lruvec, int item) argument 6926 struct lruvec *lruvec; local [all...] |
H A D | compaction.c | 896 struct lruvec *lruvec; local 898 struct lruvec *locked = NULL; 1213 lruvec = folio_lruvec(folio); 1216 if (lruvec != locked) { 1220 compact_lock_irqsave(&lruvec->lru_lock, &flags, cc); 1221 locked = lruvec; 1223 lruvec_memcg_debug(lruvec, folio); 1257 lruvec_del_folio(lruvec, folio);
|
H A D | huge_memory.c | 2770 struct lruvec *lruvec, struct list_head *list) 2774 lockdep_assert_held(&lruvec->lru_lock); 2793 struct lruvec *lruvec, struct list_head *list, 2886 lru_add_page_tail(head, page_tail, lruvec, list); 2894 struct lruvec *lruvec; local 2912 lruvec = folio_lruvec_lock(folio); 2917 __split_huge_page_tail(folio, i, lruvec, lis 2769 lru_add_page_tail(struct page *head, struct page *tail, struct lruvec *lruvec, struct list_head *list) argument 2792 __split_huge_page_tail(struct folio *folio, int tail, struct lruvec *lruvec, struct list_head *list, unsigned int new_order) argument [all...] |
H A D | migrate.c | 489 struct lruvec *old_lruvec, *new_lruvec;
|