Home
last modified time | relevance | path

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

/Linux-v6.1/include/linux/
Dmm_inline.h37 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()
164 static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen) in lru_gen_is_active() argument
166 unsigned long max_seq = lruvec->lrugen.max_seq; in lru_gen_is_active()
174 static inline void lru_gen_update_size(struct lruvec *lruvec, struct folio *folio, in lru_gen_update_size() argument
[all …]
Dmemcontrol.h122 struct lruvec lruvec; member
708 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec()
712 struct lruvec *lruvec; in mem_cgroup_lruvec() local
715 lruvec = &pgdat->__lruvec; in mem_cgroup_lruvec()
723 lruvec = &mz->lruvec; in mem_cgroup_lruvec()
730 if (unlikely(lruvec->pgdat != pgdat)) in mem_cgroup_lruvec()
731 lruvec->pgdat = pgdat; in mem_cgroup_lruvec()
732 return lruvec; in mem_cgroup_lruvec()
741 static inline struct lruvec *folio_lruvec(struct folio *folio) in folio_lruvec()
753 struct lruvec *folio_lruvec_lock(struct folio *folio);
[all …]
Dvmstat.h540 void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,
543 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument
549 __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.h364 struct lruvec;
463 struct lruvec *lruvec; member
478 void lru_gen_init_lruvec(struct lruvec *lruvec);
488 static inline void lru_gen_init_lruvec(struct lruvec *lruvec) in lru_gen_init_lruvec() argument
508 struct lruvec { struct
1215 struct lruvec __lruvec;
1270 extern void lruvec_init(struct lruvec *lruvec);
1272 static inline struct pglist_data *lruvec_pgdat(struct lruvec *lruvec) in lruvec_pgdat() argument
1275 return lruvec->pgdat; in lruvec_pgdat()
1277 return container_of(lruvec, struct pglist_data, __lruvec); in lruvec_pgdat()
Dswap.h364 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages);
387 void lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_pages);
/Linux-v6.1/mm/
Dswap.c83 struct lruvec *lruvec; in __page_cache_release() local
86 lruvec = folio_lruvec_lock_irqsave(folio, &flags); in __page_cache_release()
87 lruvec_del_folio(lruvec, folio); in __page_cache_release()
89 unlock_page_lruvec_irqrestore(lruvec, flags); in __page_cache_release()
190 typedef void (*move_fn_t)(struct lruvec *lruvec, struct folio *folio);
192 static void lru_add_fn(struct lruvec *lruvec, struct folio *folio) in lru_add_fn() argument
228 lruvec_add_folio(lruvec, folio); in lru_add_fn()
235 struct lruvec *lruvec = NULL; in folio_batch_move_lru() local
245 lruvec = folio_lruvec_relock_irqsave(folio, lruvec, &flags); in folio_batch_move_lru()
246 move_fn(lruvec, folio); in folio_batch_move_lru()
[all …]
Dvmscan.c601 static unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, in lruvec_lru_size() argument
608 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size()
614 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); in lruvec_lru_size()
2145 static __always_inline void update_lru_sizes(struct lruvec *lruvec, in update_lru_sizes() argument
2154 update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); in update_lru_sizes()
2181 struct lruvec *lruvec, struct list_head *dst, in isolate_lru_folios() argument
2185 struct list_head *src = &lruvec->lists[lru]; in isolate_lru_folios()
2269 update_lru_sizes(lruvec, lru, nr_zone_taken); in isolate_lru_folios()
2303 struct lruvec *lruvec; in folio_isolate_lru() local
2306 lruvec = folio_lruvec_lock_irq(folio); in folio_isolate_lru()
[all …]
Dworkingset.c225 struct lruvec *lruvec; in lru_gen_eviction() local
236 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_eviction()
237 lrugen = &lruvec->lrugen; in lru_gen_eviction()
254 struct lruvec *lruvec; in lru_gen_refault() local
272 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_refault()
273 lrugen = &lruvec->lrugen; in lru_gen_refault()
285 mod_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + type, delta); in lru_gen_refault()
296 mod_lruvec_state(lruvec, WORKINGSET_RESTORE_BASE + type, delta); in lru_gen_refault()
325 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages) in workingset_age_nonresident() argument
339 atomic_long_add(nr_pages, &lruvec->nonresident_age); in workingset_age_nonresident()
[all …]
Dmlock.c61 static struct lruvec *__mlock_page(struct page *page, struct lruvec *lruvec) in __mlock_page() argument
65 return lruvec; in __mlock_page()
67 lruvec = folio_lruvec_relock_irq(page_folio(page), lruvec); in __mlock_page()
77 del_page_from_lru_list(page, lruvec); in __mlock_page()
79 add_page_to_lru_list(page, lruvec); in __mlock_page()
92 del_page_from_lru_list(page, lruvec); in __mlock_page()
96 add_page_to_lru_list(page, lruvec); in __mlock_page()
100 return lruvec; in __mlock_page()
103 static struct lruvec *__mlock_new_page(struct page *page, struct lruvec *lruvec) in __mlock_new_page() argument
107 lruvec = folio_lruvec_relock_irq(page_folio(page), lruvec); in __mlock_new_page()
[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()
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()
Dmemcontrol.c763 void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, in __mod_memcg_lruvec_state() argument
769 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in __mod_memcg_lruvec_state()
813 void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, in __mod_lruvec_state() argument
817 __mod_node_page_state(lruvec_pgdat(lruvec), idx, val); in __mod_lruvec_state()
821 __mod_memcg_lruvec_state(lruvec, idx, val); in __mod_lruvec_state()
830 struct lruvec *lruvec; in __mod_lruvec_page_state() local
841 lruvec = mem_cgroup_lruvec(memcg, pgdat); in __mod_lruvec_page_state()
842 __mod_lruvec_state(lruvec, idx, val); in __mod_lruvec_page_state()
851 struct lruvec *lruvec; in __mod_lruvec_kmem_state() local
865 lruvec = mem_cgroup_lruvec(memcg, pgdat); in __mod_lruvec_kmem_state()
[all …]
Dcompaction.c791 struct lruvec *lruvec; in isolate_migratepages_block() local
793 struct lruvec *locked = NULL; in isolate_migratepages_block()
1055 lruvec = folio_lruvec(page_folio(page)); in isolate_migratepages_block()
1058 if (lruvec != locked) { in isolate_migratepages_block()
1062 compact_lock_irqsave(&lruvec->lru_lock, &flags, cc); in isolate_migratepages_block()
1063 locked = lruvec; in isolate_migratepages_block()
1065 lruvec_memcg_debug(lruvec, page_folio(page)); in isolate_migratepages_block()
1091 del_page_from_lru_list(page, lruvec); in isolate_migratepages_block()
Dhuge_memory.c2396 struct lruvec *lruvec, struct list_head *list) in lru_add_page_tail() argument
2401 lockdep_assert_held(&lruvec->lru_lock); in lru_add_page_tail()
2420 struct lruvec *lruvec, struct list_head *list) in __split_huge_page_tail() argument
2499 lru_add_page_tail(head, page_tail, lruvec, list); in __split_huge_page_tail()
2507 struct lruvec *lruvec; in __split_huge_page() local
2525 lruvec = folio_lruvec_lock(folio); in __split_huge_page()
2530 __split_huge_page_tail(head, i, lruvec, list); in __split_huge_page()
2552 unlock_page_lruvec(lruvec); in __split_huge_page()
Dmigrate.c460 struct lruvec *old_lruvec, *new_lruvec; in folio_migrate_mapping()
/Linux-v6.1/Documentation/mm/
Dmultigen_lru.rst83 ``lruvec``. The youngest generation number is stored in
113 The aging produces young generations. Given an ``lruvec``, it
129 The eviction consumes old generations. Given an ``lruvec``, it
/Linux-v6.1/Documentation/trace/
Devents-kmem.rst72 contention on the lruvec->lru_lock.
/Linux-v6.1/Documentation/admin-guide/cgroup-v1/
Dmemory.rst296 lruvec->lru_lock.
299 lruvec->lru_lock; PG_lru bit of page->flags is cleared before
300 isolating a page from its LRU under lruvec->lru_lock.