Home
last modified time | relevance | path

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

/linux/mm/
H A Dfolio.c67 static void __page_cache_release(struct folio *folio, struct lruvec **lruvecp, in __page_cache_release()
83 struct lruvec *lruvec = NULL; in page_cache_release() local
86 __page_cache_release(folio, &lruvec, &flags); in page_cache_release()
87 if (lruvec) in page_cache_release()
88 lruvec_unlock_irqrestore(lruvec, flags); in page_cache_release()
110 typedef void (*move_fn_t)(struct lruvec *lruvec, struct folio *folio);
112 static void lru_add(struct lruvec *lruvec, struct folio *folio) in lru_add() argument
148 lruvec_add_folio(lruvec, folio); in lru_add()
155 struct lruvec *lruvec = NULL; in folio_batch_move_lru() local
193 folio_lruvec_relock_irqsave(folio, &lruvec, &flags); in folio_batch_move_lru()
[all …]
H A Dvmscan.c394 unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx) in lruvec_lru_size() argument
400 for_each_managed_zone_pgdat(zone, lruvec_pgdat(lruvec), zid, zone_idx) { in lruvec_lru_size()
402 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); in lruvec_lru_size()
1644 static __always_inline void update_lru_sizes(struct lruvec *lruvec, in update_lru_sizes() argument
1653 update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); in update_lru_sizes()
1680 struct lruvec *lruvec, struct list_head *dst, in isolate_lru_folios() argument
1684 struct list_head *src = &lruvec->lists[lru]; in isolate_lru_folios()
1769 update_lru_sizes(lruvec, lru, nr_zone_taken); in isolate_lru_folios()
1803 struct lruvec *lruvec; in folio_isolate_lru() local
1806 lruvec = folio_lruvec_lock_irq(folio); in folio_isolate_lru()
[all …]
H A Dworkingset.c240 struct lruvec *lruvec; in lru_gen_eviction() local
256 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_eviction()
257 lrugen = &lruvec->lrugen; in lru_gen_eviction()
273 static bool lru_gen_test_recent(void *shadow, struct lruvec **lruvec, in lru_gen_test_recent() argument
284 *lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_test_recent()
286 max_seq = READ_ONCE((*lruvec)->lrugen.max_seq); in lru_gen_test_recent()
298 struct lruvec *lruvec; in lru_gen_refault() local
305 recent = lru_gen_test_recent(shadow, &lruvec, &token, &workingset, type); in lru_gen_refault()
306 if (lruvec != folio_lruvec(folio)) in lru_gen_refault()
309 mod_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + type, delta); in lru_gen_refault()
[all …]
H A 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 …]
H A Dmmzone.c76 void lruvec_init(struct lruvec *lruvec) in lruvec_init() argument
80 memset(lruvec, 0, sizeof(struct lruvec)); in lruvec_init()
81 spin_lock_init(&lruvec->lru_lock); in lruvec_init()
82 spin_lock_init(&lruvec->cost_lock); in lruvec_init()
83 zswap_lruvec_state_init(lruvec); in lruvec_init()
86 INIT_LIST_HEAD(&lruvec->lists[lru]); in lruvec_init()
93 list_del(&lruvec->lists[LRU_UNEVICTABLE]); in lruvec_init()
95 lru_gen_init_lruvec(lruvec); in lruvec_init()
H A Dmemcontrol.c492 unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) in lruvec_page_state() argument
499 return node_page_state(lruvec_pgdat(lruvec), idx); in lruvec_page_state()
505 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in lruvec_page_state()
533 unsigned long lruvec_page_state_monotonic(struct lruvec *lruvec, in lruvec_page_state_monotonic() argument
540 return node_page_state_monotonic(lruvec_pgdat(lruvec), idx); in lruvec_page_state_monotonic()
546 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in lruvec_page_state_monotonic()
550 unsigned long lruvec_page_state_local(struct lruvec *lruvec, in lruvec_page_state_local() argument
558 return node_page_state(lruvec_pgdat(lruvec), idx); in lruvec_page_state_local()
564 pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); in lruvec_page_state_local()
583 struct lruvec *child_lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid)); in reparent_memcg_lruvec_state_local()
[all …]
H A Dzswap.c703 void zswap_lruvec_state_init(struct lruvec *lruvec) in zswap_lruvec_state_init() argument
705 atomic_long_set(&lruvec->zswap_lruvec_state.nr_disk_swapins, 0); in zswap_lruvec_state_init()
710 struct lruvec *lruvec; in zswap_folio_swapin() local
714 lruvec = folio_lruvec(folio); in zswap_folio_swapin()
715 atomic_long_inc(&lruvec->zswap_lruvec_state.nr_disk_swapins); in zswap_folio_swapin()
1196 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(sc->nid)); in zswap_shrinker_count() local
1198 &lruvec->zswap_lruvec_state.nr_disk_swapins; in zswap_shrinker_count()
H A Dinternal.h37 void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages);
72 unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru,
H A Dmemcontrol-v1.c2094 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid)); in mem_cgroup_node_nr_lru_pages() local
2104 nr += lruvec_page_state(lruvec, NR_LRU_BASE + lru); in mem_cgroup_node_nr_lru_pages()
2106 nr += lruvec_page_state_local(lruvec, NR_LRU_BASE + lru); in mem_cgroup_node_nr_lru_pages()
2300 anon_cost += mz->lruvec.cost[WORKINGSET_ANON].count; in memcg1_stat_format()
2301 file_cost += mz->lruvec.cost[WORKINGSET_FILE].count; in memcg1_stat_format()
H A Dmigrate.c685 struct lruvec *old_lruvec, *new_lruvec; in __folio_migrate_mapping()
2762 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in migrate_misplaced_folio() local
2776 mod_lruvec_state(lruvec, PGPROMOTE_SUCCESS, nr_succeeded); in migrate_misplaced_folio()
H A Dhuge_memory.c3649 struct lruvec *lruvec, struct list_head *list) in lru_add_split_folio() argument
3652 lockdep_assert_held(&lruvec->lru_lock); in lru_add_split_folio()
4001 struct lruvec *lruvec; in __folio_freeze_and_split_unmapped() local
4041 lruvec = folio_lruvec_lock(folio); in __folio_freeze_and_split_unmapped()
4066 lru_add_split_folio(folio, new_folio, lruvec, list); in __folio_freeze_and_split_unmapped()
4109 lruvec_unlock(lruvec); in __folio_freeze_and_split_unmapped()
/linux/include/linux/
H A Dmemcontrol.h114 struct lruvec lruvec; member
705 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec()
709 struct lruvec *lruvec; in mem_cgroup_lruvec() local
712 lruvec = &pgdat->__lruvec; in mem_cgroup_lruvec()
720 lruvec = &mz->lruvec; in mem_cgroup_lruvec()
727 if (unlikely(lruvec->pgdat != pgdat)) in mem_cgroup_lruvec()
728 lruvec->pgdat = pgdat; in mem_cgroup_lruvec()
729 return lruvec; in mem_cgroup_lruvec()
746 static inline struct lruvec *folio_lruvec(struct folio *folio) in folio_lruvec()
762 struct lruvec *folio_lruvec_lock(struct folio *folio);
[all …]
H A Dmmzone.h524 struct lruvec;
619 struct lruvec *lruvec; member
691 void lru_gen_init_lruvec(struct lruvec *lruvec);
710 static inline void lru_gen_init_lruvec(struct lruvec *lruvec) in lru_gen_init_lruvec() argument
766 struct lruvec { struct
1592 struct lruvec __lruvec;
1663 extern void lruvec_init(struct lruvec *lruvec);
1665 static inline struct pglist_data *lruvec_pgdat(struct lruvec *lruvec) in lruvec_pgdat() argument
1668 return lruvec->pgdat; in lruvec_pgdat()
1670 return container_of(lruvec, struct pglist_data, __lruvec); in lruvec_pgdat()
H A Dvmstat.h534 void mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,
548 static inline void mod_lruvec_state(struct lruvec *lruvec, in mod_lruvec_state() argument
551 mod_node_page_state(lruvec_pgdat(lruvec), idx, val); in mod_lruvec_state()
/linux/Documentation/mm/
H A 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
/linux/mm/damon/
H A Dcore.c2832 struct lruvec *lruvec; in damos_get_node_memcg_used_bp() local
2852 lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(goal->nid)); in damos_get_node_memcg_used_bp()
2853 used_pages = lruvec_page_state(lruvec, NR_ACTIVE_ANON); in damos_get_node_memcg_used_bp()
2854 used_pages += lruvec_page_state(lruvec, NR_INACTIVE_ANON); in damos_get_node_memcg_used_bp()
2855 used_pages += lruvec_page_state(lruvec, NR_ACTIVE_FILE); in damos_get_node_memcg_used_bp()
2856 used_pages += lruvec_page_state(lruvec, NR_INACTIVE_FILE); in damos_get_node_memcg_used_bp()
/linux/Documentation/trace/
H A Devents-kmem.rst72 contention on the lruvec->lru_lock.
/linux/Documentation/admin-guide/cgroup-v1/
H A Dmemory.rst313 lruvec->lru_lock.
316 lruvec->lru_lock; the folio LRU flag is cleared before
317 isolating a page from its LRU under lruvec->lru_lock.