Home
last modified time | relevance | path

Searched refs:lruvec (Results 1 – 21 of 21) sorted by relevance

/linux-6.12.1/mm/
Dswap.c73 static void __page_cache_release(struct folio *folio, struct lruvec **lruvecp, in __page_cache_release()
89 struct lruvec *lruvec = NULL; in page_cache_release() local
92 __page_cache_release(folio, &lruvec, &flags); in page_cache_release()
93 if (lruvec) in page_cache_release()
94 unlock_page_lruvec_irqrestore(lruvec, flags); in page_cache_release()
147 typedef void (*move_fn_t)(struct lruvec *lruvec, struct folio *folio);
149 static void lru_add(struct lruvec *lruvec, struct folio *folio) in lru_add() argument
185 lruvec_add_folio(lruvec, folio); in lru_add()
192 struct lruvec *lruvec = NULL; in folio_batch_move_lru() local
198 folio_lruvec_relock_irqsave(folio, &lruvec, &flags); in folio_batch_move_lru()
[all …]
Dvmscan.c387 static unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, in lruvec_lru_size() argument
394 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size()
400 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); in lruvec_lru_size()
1614 static __always_inline void update_lru_sizes(struct lruvec *lruvec, in update_lru_sizes() argument
1623 update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); in update_lru_sizes()
1650 struct lruvec *lruvec, struct list_head *dst, in isolate_lru_folios() argument
1654 struct list_head *src = &lruvec->lists[lru]; in isolate_lru_folios()
1737 update_lru_sizes(lruvec, lru, nr_zone_taken); in isolate_lru_folios()
1771 struct lruvec *lruvec; in folio_isolate_lru() local
1774 lruvec = folio_lruvec_lock_irq(folio); in folio_isolate_lru()
[all …]
Dworkingset.c237 struct lruvec *lruvec; in lru_gen_eviction() local
248 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_eviction()
249 lrugen = &lruvec->lrugen; in lru_gen_eviction()
263 static bool lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, in lru_gen_test_recent() argument
274 *lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_test_recent()
276 min_seq = READ_ONCE((*lruvec)->lrugen.min_seq[file]); in lru_gen_test_recent()
286 struct lruvec *lruvec; in lru_gen_refault() local
293 recent = lru_gen_test_recent(shadow, type, &lruvec, &token, &workingset); in lru_gen_refault()
294 if (lruvec != folio_lruvec(folio)) in lru_gen_refault()
297 mod_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + type, delta); in lru_gen_refault()
[all …]
Dmlock.c61 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, folio); in __mlock_folio()
100 return 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()
[all …]
Dmmzone.c75 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()
Dmemcontrol.c370 unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) in lruvec_page_state() argument
377 return node_page_state(lruvec_pgdat(lruvec), idx); in lruvec_page_state()
383 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in lruvec_page_state()
392 unsigned long lruvec_page_state_local(struct lruvec *lruvec, in lruvec_page_state_local() argument
400 return node_page_state(lruvec_pgdat(lruvec), idx); in lruvec_page_state_local()
406 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in lruvec_page_state_local()
707 static void __mod_memcg_lruvec_state(struct lruvec *lruvec, in __mod_memcg_lruvec_state() argument
718 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in __mod_memcg_lruvec_state()
760 void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, in __mod_lruvec_state() argument
764 __mod_node_page_state(lruvec_pgdat(lruvec), idx, val); in __mod_lruvec_state()
[all …]
Dzswap.c735 void zswap_lruvec_state_init(struct lruvec *lruvec) in zswap_lruvec_state_init() argument
737 atomic_long_set(&lruvec->zswap_lruvec_state.nr_disk_swapins, 0); in zswap_lruvec_state_init()
742 struct lruvec *lruvec; in zswap_folio_swapin() local
745 lruvec = folio_lruvec(folio); in zswap_folio_swapin()
746 atomic_long_inc(&lruvec->zswap_lruvec_state.nr_disk_swapins); in zswap_folio_swapin()
1205 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(sc->nid)); in zswap_shrinker_count() local
1207 &lruvec->zswap_lruvec_state.nr_disk_swapins; in zswap_shrinker_count()
Dcompaction.c873 struct lruvec *lruvec; in isolate_migratepages_block() local
875 struct lruvec *locked = NULL; in isolate_migratepages_block()
1190 lruvec = folio_lruvec(folio); in isolate_migratepages_block()
1193 if (lruvec != locked) { in isolate_migratepages_block()
1197 compact_lock_irqsave(&lruvec->lru_lock, &flags, cc); in isolate_migratepages_block()
1198 locked = lruvec; in isolate_migratepages_block()
1200 lruvec_memcg_debug(lruvec, folio); in isolate_migratepages_block()
1234 lruvec_del_folio(lruvec, folio); in isolate_migratepages_block()
Dhuge_memory.c3055 struct lruvec *lruvec, struct list_head *list) in lru_add_page_tail() argument
3059 lockdep_assert_held(&lruvec->lru_lock); in lru_add_page_tail()
3078 struct lruvec *lruvec, struct list_head *list, in __split_huge_page_tail() argument
3173 lru_add_page_tail(folio, page_tail, lruvec, list); in __split_huge_page_tail()
3181 struct lruvec *lruvec; in __split_huge_page() local
3199 lruvec = folio_lruvec_lock(folio); in __split_huge_page()
3204 __split_huge_page_tail(folio, i, lruvec, list, new_order); in __split_huge_page()
3232 unlock_page_lruvec(lruvec); in __split_huge_page()
Dmemcontrol-v1.c765 struct lruvec *from_vec, *to_vec; in mem_cgroup_move_account()
2636 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid)); in mem_cgroup_node_nr_lru_pages() local
2646 nr += lruvec_page_state(lruvec, NR_LRU_BASE + lru); in mem_cgroup_node_nr_lru_pages()
2648 nr += lruvec_page_state_local(lruvec, NR_LRU_BASE + lru); in mem_cgroup_node_nr_lru_pages()
2826 anon_cost += mz->lruvec.anon_cost; in memcg1_stat_format()
2827 file_cost += mz->lruvec.file_cost; in memcg1_stat_format()
Dmigrate.c575 struct lruvec *old_lruvec, *new_lruvec; in __folio_migrate_mapping()
2693 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in migrate_misplaced_folio() local
2707 mod_lruvec_state(lruvec, PGPROMOTE_SUCCESS, nr_succeeded); in migrate_misplaced_folio()
/linux-6.12.1/include/linux/
Dmm_inline.h38 static __always_inline void __update_lru_size(struct lruvec *lruvec, in __update_lru_size() argument
42 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in __update_lru_size()
44 lockdep_assert_held(&lruvec->lru_lock); in __update_lru_size()
47 __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); in __update_lru_size()
52 static __always_inline void update_lru_size(struct lruvec *lruvec, in update_lru_size() argument
56 __update_lru_size(lruvec, lru, zid, nr_pages); in update_lru_size()
58 mem_cgroup_update_lru_size(lruvec, lru, zid, nr_pages); in update_lru_size()
165 static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen) in lru_gen_is_active() argument
167 unsigned long max_seq = lruvec->lrugen.max_seq; in lru_gen_is_active()
175 static inline void lru_gen_update_size(struct lruvec *lruvec, struct folio *folio, in lru_gen_update_size() argument
[all …]
Dmemcontrol.h112 struct lruvec lruvec; member
741 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec()
745 struct lruvec *lruvec; in mem_cgroup_lruvec() local
748 lruvec = &pgdat->__lruvec; in mem_cgroup_lruvec()
756 lruvec = &mz->lruvec; in mem_cgroup_lruvec()
763 if (unlikely(lruvec->pgdat != pgdat)) in mem_cgroup_lruvec()
764 lruvec->pgdat = pgdat; in mem_cgroup_lruvec()
765 return lruvec; in mem_cgroup_lruvec()
774 static inline struct lruvec *folio_lruvec(struct folio *folio) in folio_lruvec()
790 struct lruvec *folio_lruvec_lock(struct folio *folio);
[all …]
Dzswap.h8 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
Dvmstat.h534 void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,
537 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument
543 __mod_lruvec_state(lruvec, idx, val); in mod_lruvec_state()
568 static inline void __mod_lruvec_state(struct lruvec *lruvec, in __mod_lruvec_state() argument
571 __mod_node_page_state(lruvec_pgdat(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()
Dmmzone.h386 struct lruvec;
485 struct lruvec *lruvec; member
557 void lru_gen_init_lruvec(struct lruvec *lruvec);
573 static inline void lru_gen_init_lruvec(struct lruvec *lruvec) in lru_gen_init_lruvec() argument
608 struct lruvec { struct
1416 struct lruvec __lruvec;
1476 extern void lruvec_init(struct lruvec *lruvec);
1478 static inline struct pglist_data *lruvec_pgdat(struct lruvec *lruvec) in lruvec_pgdat() argument
1481 return lruvec->pgdat; in lruvec_pgdat()
1483 return container_of(lruvec, struct pglist_data, __lruvec); in lruvec_pgdat()
Dswap.h364 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages);
377 void lru_note_cost(struct lruvec *lruvec, bool file,
/linux-6.12.1/Documentation/mm/
Dmultigen_lru.rst83 ``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
Dphysical_memory.rst267 Per-node lruvec holding LRU lists and related parameters. Used only when
/linux-6.12.1/Documentation/trace/
Devents-kmem.rst72 contention on the lruvec->lru_lock.
/linux-6.12.1/Documentation/admin-guide/cgroup-v1/
Dmemory.rst321 lruvec->lru_lock.
324 lruvec->lru_lock; the folio LRU flag is cleared before
325 isolating a page from its LRU under lruvec->lru_lock.