| /linux-6.15/mm/ |
| H A D | swap.c | 89 struct lruvec *lruvec = NULL; in page_cache_release() local 93 if (lruvec) in page_cache_release() 118 static void lru_add(struct lruvec *lruvec, struct folio *folio) in lru_add() argument 161 struct lruvec *lruvec = NULL; in folio_batch_move_lru() local 173 if (lruvec) in folio_batch_move_lru() 240 void lru_note_cost(struct lruvec *lruvec, bool file, in lru_note_cost() argument 284 if (lruvec->file_cost + lruvec->anon_cost > lrusize / 4) { in lru_note_cost() 289 } while ((lruvec = parent_lruvec(lruvec))); in lru_note_cost() 339 struct lruvec *lruvec; in folio_activate() local 944 struct lruvec *lruvec = NULL; in folios_put_refs() local [all …]
|
| H A D | workingset.c | 237 struct lruvec *lruvec; in lru_gen_eviction() local 250 lrugen = &lruvec->lrugen; in lru_gen_eviction() 264 static bool lru_gen_test_recent(void *shadow, struct lruvec **lruvec, in lru_gen_test_recent() argument 289 struct lruvec *lruvec; in lru_gen_refault() local 305 lrugen = &lruvec->lrugen; in lru_gen_refault() 333 static bool lru_gen_test_recent(void *shadow, struct lruvec **lruvec, in lru_gen_test_recent() argument 355 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages) in workingset_age_nonresident() argument 370 } while ((lruvec = parent_lruvec(lruvec))); in workingset_age_nonresident() 385 struct lruvec *lruvec; in workingset_eviction() local 539 struct lruvec *lruvec; in workingset_refault() local [all …]
|
| H A D | vmscan.c | 1845 struct lruvec *lruvec; in folio_isolate_lru() local 3019 struct lruvec *lruvec = walk->lruvec; in reset_mm_stats() local 3045 struct lruvec *lruvec = walk->lruvec; in iterate_mm_list() local 3300 struct lruvec *lruvec = walk->lruvec; in reset_batch_size() local 3783 struct lruvec *lruvec = walk->lruvec; in walk_mm() local 4040 walk->lruvec = lruvec; in try_to_inc_max_seq() 4732 walk->lruvec = lruvec; in evict_folios() 4931 struct lruvec *lruvec; in shrink_many() local 5492 struct lruvec *lruvec; in run_cmd() local 6362 struct lruvec *lruvec; in do_try_to_free_pages() local [all …]
|
| H A D | mlock.c | 61 static struct lruvec *__mlock_folio(struct folio *folio, struct lruvec *lruvec) in __mlock_folio() argument 67 lruvec = folio_lruvec_relock_irq(folio, lruvec); in __mlock_folio() 103 static struct lruvec *__mlock_new_folio(struct folio *folio, struct lruvec *lruvec) in __mlock_new_folio() argument 107 lruvec = folio_lruvec_relock_irq(folio, lruvec); in __mlock_new_folio() 122 static struct lruvec *__munlock_folio(struct folio *folio, struct lruvec *lruvec) in __munlock_folio() argument 131 lruvec = folio_lruvec_relock_irq(folio, lruvec); in __munlock_folio() 188 struct lruvec *lruvec = NULL; in mlock_folio_batch() local 200 lruvec = __mlock_folio(folio, lruvec); in mlock_folio_batch() 202 lruvec = __mlock_new_folio(folio, lruvec); in mlock_folio_batch() 204 lruvec = __munlock_folio(folio, lruvec); in mlock_folio_batch() [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() 81 zswap_lruvec_state_init(lruvec); in lruvec_init() 84 INIT_LIST_HEAD(&lruvec->lists[lru]); in lruvec_init() 91 list_del(&lruvec->lists[LRU_UNEVICTABLE]); in lruvec_init() 93 lru_gen_init_lruvec(lruvec); in lruvec_init()
|
| H A D | memcontrol.c | 401 unsigned long lruvec_page_state_local(struct lruvec *lruvec, in lruvec_page_state_local() argument 731 static void __mod_memcg_lruvec_state(struct lruvec *lruvec, in __mod_memcg_lruvec_state() argument 802 struct lruvec *lruvec; in __lruvec_stat_mod_folio() local 823 struct lruvec *lruvec; in __mod_lruvec_kmem_state() local 1222 struct lruvec *lruvec = folio_lruvec(folio); in folio_lruvec_lock() local 1227 return lruvec; in folio_lruvec_lock() 1244 struct lruvec *lruvec = folio_lruvec(folio); in folio_lruvec_lock_irq() local 1249 return lruvec; in folio_lruvec_lock_irq() 1268 struct lruvec *lruvec = folio_lruvec(folio); in folio_lruvec_lock_irqsave() local 2465 struct lruvec *lruvec; in __mod_objcg_mlstate() local [all …]
|
| H A D | zswap.c | 745 void zswap_lruvec_state_init(struct lruvec *lruvec) in zswap_lruvec_state_init() argument 747 atomic_long_set(&lruvec->zswap_lruvec_state.nr_disk_swapins, 0); in zswap_lruvec_state_init() 752 struct lruvec *lruvec; in zswap_folio_swapin() local 755 lruvec = folio_lruvec(folio); in zswap_folio_swapin() 756 atomic_long_inc(&lruvec->zswap_lruvec_state.nr_disk_swapins); in zswap_folio_swapin() 1279 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(sc->nid)); in zswap_shrinker_count() local 1281 &lruvec->zswap_lruvec_state.nr_disk_swapins; in zswap_shrinker_count()
|
| H A D | compaction.c | 875 struct lruvec *lruvec; in isolate_migratepages_block() local 877 struct lruvec *locked = NULL; in isolate_migratepages_block() 1192 lruvec = folio_lruvec(folio); in isolate_migratepages_block() 1195 if (lruvec != locked) { in isolate_migratepages_block() 1199 compact_lock_irqsave(&lruvec->lru_lock, &flags, cc); in isolate_migratepages_block() 1200 locked = lruvec; in isolate_migratepages_block() 1202 lruvec_memcg_debug(lruvec, folio); in isolate_migratepages_block() 1236 lruvec_del_folio(lruvec, folio); in isolate_migratepages_block()
|
| H A D | memcontrol-v1.c | 1743 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid)); in mem_cgroup_node_nr_lru_pages() local 1753 nr += lruvec_page_state(lruvec, NR_LRU_BASE + lru); in mem_cgroup_node_nr_lru_pages() 1755 nr += lruvec_page_state_local(lruvec, NR_LRU_BASE + lru); in mem_cgroup_node_nr_lru_pages() 1933 anon_cost += mz->lruvec.anon_cost; in memcg1_stat_format() 1934 file_cost += mz->lruvec.file_cost; in memcg1_stat_format()
|
| H A D | huge_memory.c | 3271 struct lruvec *lruvec, struct list_head *list) in lru_add_split_folio() argument 3274 lockdep_assert_held(&lruvec->lru_lock); in lru_add_split_folio() 3468 struct lruvec *lruvec; in __split_unmapped_folio() local 3496 lruvec = folio_lruvec_lock(folio); in __split_unmapped_folio() 3581 lru_add_split_folio(origin_folio, release, lruvec, in __split_unmapped_folio() 3613 unlock_page_lruvec(lruvec); in __split_unmapped_folio()
|
| H A D | migrate.c | 565 struct lruvec *old_lruvec, *new_lruvec; in __folio_migrate_mapping() 2716 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in migrate_misplaced_folio() local 2730 mod_lruvec_state(lruvec, PGPROMOTE_SUCCESS, nr_succeeded); in migrate_misplaced_folio()
|
| /linux-6.15/include/linux/ |
| H A D | mm_inline.h | 38 static __always_inline void __update_lru_size(struct lruvec *lruvec, in __update_lru_size() argument 52 static __always_inline void update_lru_size(struct lruvec *lruvec, in update_lru_size() argument 164 static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen) in lru_gen_is_active() argument 174 static inline void lru_gen_update_size(struct lruvec *lruvec, struct folio *folio, in lru_gen_update_size() argument 211 if (!lru_gen_is_active(lruvec, old_gen) && lru_gen_is_active(lruvec, new_gen)) { in lru_gen_update_size() 217 VM_WARN_ON_ONCE(lru_gen_is_active(lruvec, old_gen) && !lru_gen_is_active(lruvec, new_gen)); in lru_gen_update_size() 220 static inline unsigned long lru_gen_folio_seq(struct lruvec *lruvec, struct folio *folio, in lru_gen_folio_seq() argument 253 static inline bool lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio, bool reclaiming) in lru_gen_add_folio() argument 340 void lruvec_add_folio(struct lruvec *lruvec, struct folio *folio) in lruvec_add_folio() argument 354 void lruvec_add_folio_tail(struct lruvec *lruvec, struct folio *folio) in lruvec_add_folio_tail() argument [all …]
|
| H A D | memcontrol.h | 112 struct lruvec lruvec; member 689 struct lruvec *lruvec; in mem_cgroup_lruvec() local 700 lruvec = &mz->lruvec; in mem_cgroup_lruvec() 709 return lruvec; in mem_cgroup_lruvec() 831 mz = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in lruvec_memcg() 882 unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, in mem_cgroup_get_zone_lru_size() argument 887 mz = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in mem_cgroup_get_zone_lru_size() 937 unsigned long lruvec_page_state_local(struct lruvec *lruvec, 1500 static inline struct lruvec *parent_lruvec(struct lruvec *lruvec) in parent_lruvec() argument 1513 static inline void unlock_page_lruvec(struct lruvec *lruvec) in unlock_page_lruvec() argument [all …]
|
| H A D | zswap.h | 8 struct lruvec; 34 void zswap_lruvec_state_init(struct lruvec *lruvec); 59 static inline void zswap_lruvec_state_init(struct lruvec *lruvec) {} in zswap_lruvec_state_init() argument
|
| H A D | vmstat.h | 523 void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, 526 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument 532 __mod_lruvec_state(lruvec, idx, val); in mod_lruvec_state() 557 static inline void __mod_lruvec_state(struct lruvec *lruvec, in __mod_lruvec_state() argument 560 __mod_node_page_state(lruvec_pgdat(lruvec), idx, val); in __mod_lruvec_state() 563 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument 566 mod_node_page_state(lruvec_pgdat(lruvec), idx, val); in mod_lruvec_state()
|
| H A D | mmzone.h | 417 struct lruvec; 512 struct lruvec *lruvec; member 584 void lru_gen_init_lruvec(struct lruvec *lruvec); 600 static inline void lru_gen_init_lruvec(struct lruvec *lruvec) in lru_gen_init_lruvec() argument 635 struct lruvec { struct 1459 struct lruvec __lruvec; 1517 extern void lruvec_init(struct lruvec *lruvec); 1519 static inline struct pglist_data *lruvec_pgdat(struct lruvec *lruvec) in lruvec_pgdat() argument 1522 return lruvec->pgdat; in lruvec_pgdat() 1524 return container_of(lruvec, struct pglist_data, __lruvec); in lruvec_pgdat()
|
| H A D | swap.h | 366 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages); 379 void lru_note_cost(struct lruvec *lruvec, bool file,
|
| /linux-6.15/Documentation/mm/ |
| H A D | multigen_lru.rst | 83 ``lruvec``. The youngest generation number is stored in 114 The aging produces young generations. Given an ``lruvec``, it 130 The eviction consumes old generations. Given an ``lruvec``, it 148 set, an ``lruvec`` is protected from the eviction when its oldest
|
| H A D | process_addrs.rst | 393 lruvec->lru_lock (in folio_lruvec_lock_irq) 441 ->lruvec->lru_lock (follow_page_mask->mark_page_accessed) 442 ->lruvec->lru_lock (check_pte_range->folio_isolate_lru)
|
| H A D | physical_memory.rst | 267 Per-node lruvec holding LRU lists and related parameters. Used only when
|
| /linux-6.15/Documentation/translations/zh_CN/mm/ |
| H A D | physical_memory.rst | 256 每个节点的lruvec持有LRU(最近最少使用)列表和相关参数。仅在禁用了内存
|
| /linux-6.15/Documentation/trace/ |
| H A D | events-kmem.rst | 72 contention on the lruvec->lru_lock.
|
| /linux-6.15/Documentation/admin-guide/cgroup-v1/ |
| H A D | memory.rst | 316 lruvec->lru_lock. 319 lruvec->lru_lock; the folio LRU flag is cleared before 320 isolating a page from its LRU under lruvec->lru_lock.
|