Lines Matching refs:lruvec
591 static unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, in lruvec_lru_size() argument
598 struct zone *zone = &lruvec_pgdat(lruvec)->node_zones[zid]; in lruvec_lru_size()
604 size += mem_cgroup_get_zone_lru_size(lruvec, lru, zid); in lruvec_lru_size()
1935 static __always_inline void update_lru_sizes(struct lruvec *lruvec, in update_lru_sizes() argument
1944 update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); in update_lru_sizes()
1971 struct lruvec *lruvec, struct list_head *dst, in isolate_lru_pages() argument
1975 struct list_head *src = &lruvec->lists[lru]; in isolate_lru_pages()
2061 update_lru_sizes(lruvec, lru, nr_zone_taken); in isolate_lru_pages()
2099 struct lruvec *lruvec; in isolate_lru_page() local
2102 lruvec = lock_page_lruvec_irq(page); in isolate_lru_page()
2103 del_page_from_lru_list(page, lruvec); in isolate_lru_page()
2104 unlock_page_lruvec_irq(lruvec); in isolate_lru_page()
2154 static unsigned int move_pages_to_lru(struct lruvec *lruvec, in move_pages_to_lru() argument
2166 spin_unlock_irq(&lruvec->lru_lock); in move_pages_to_lru()
2168 spin_lock_irq(&lruvec->lru_lock); in move_pages_to_lru()
2189 spin_unlock_irq(&lruvec->lru_lock); in move_pages_to_lru()
2191 spin_lock_irq(&lruvec->lru_lock); in move_pages_to_lru()
2202 VM_BUG_ON_PAGE(!page_matches_lruvec(page, lruvec), page); in move_pages_to_lru()
2203 add_page_to_lru_list(page, lruvec); in move_pages_to_lru()
2207 workingset_age_nonresident(lruvec, nr_pages); in move_pages_to_lru()
2236 shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, in shrink_inactive_list() argument
2246 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in shrink_inactive_list()
2264 spin_lock_irq(&lruvec->lru_lock); in shrink_inactive_list()
2266 nr_taken = isolate_lru_pages(nr_to_scan, lruvec, &page_list, in shrink_inactive_list()
2273 __count_memcg_events(lruvec_memcg(lruvec), item, nr_scanned); in shrink_inactive_list()
2276 spin_unlock_irq(&lruvec->lru_lock); in shrink_inactive_list()
2283 spin_lock_irq(&lruvec->lru_lock); in shrink_inactive_list()
2284 move_pages_to_lru(lruvec, &page_list); in shrink_inactive_list()
2290 __count_memcg_events(lruvec_memcg(lruvec), item, nr_reclaimed); in shrink_inactive_list()
2292 spin_unlock_irq(&lruvec->lru_lock); in shrink_inactive_list()
2294 lru_note_cost(lruvec, file, stat.nr_pageout); in shrink_inactive_list()
2344 struct lruvec *lruvec, in shrink_active_list() argument
2358 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in shrink_active_list()
2362 spin_lock_irq(&lruvec->lru_lock); in shrink_active_list()
2364 nr_taken = isolate_lru_pages(nr_to_scan, lruvec, &l_hold, in shrink_active_list()
2371 __count_memcg_events(lruvec_memcg(lruvec), PGREFILL, nr_scanned); in shrink_active_list()
2373 spin_unlock_irq(&lruvec->lru_lock); in shrink_active_list()
2419 spin_lock_irq(&lruvec->lru_lock); in shrink_active_list()
2421 nr_activate = move_pages_to_lru(lruvec, &l_active); in shrink_active_list()
2422 nr_deactivate = move_pages_to_lru(lruvec, &l_inactive); in shrink_active_list()
2427 __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, nr_deactivate); in shrink_active_list()
2430 spin_unlock_irq(&lruvec->lru_lock); in shrink_active_list()
2498 struct lruvec *lruvec, struct scan_control *sc) in shrink_list() argument
2502 shrink_active_list(nr_to_scan, lruvec, sc, lru); in shrink_list()
2508 return shrink_inactive_list(nr_to_scan, lruvec, sc, lru); in shrink_list()
2539 static bool inactive_is_low(struct lruvec *lruvec, enum lru_list inactive_lru) in inactive_is_low() argument
2546 inactive = lruvec_page_state(lruvec, NR_LRU_BASE + inactive_lru); in inactive_is_low()
2547 active = lruvec_page_state(lruvec, NR_LRU_BASE + active_lru); in inactive_is_low()
2574 static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc, in get_scan_count() argument
2577 struct pglist_data *pgdat = lruvec_pgdat(lruvec); in get_scan_count()
2578 struct mem_cgroup *memcg = lruvec_memcg(lruvec); in get_scan_count()
2669 lruvec_size = lruvec_lru_size(lruvec, lru, sc->reclaim_idx); in get_scan_count()
2786 static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc) in shrink_lruvec() argument
2797 get_scan_count(lruvec, sc, nr); in shrink_lruvec()
2828 lruvec, sc); in shrink_lruvec()
2895 if (can_age_anon_pages(lruvec_pgdat(lruvec), sc) && in shrink_lruvec()
2896 inactive_is_low(lruvec, LRU_INACTIVE_ANON)) in shrink_lruvec()
2897 shrink_active_list(SWAP_CLUSTER_MAX, lruvec, in shrink_lruvec()
2979 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in shrink_node_memcgs() local
3016 shrink_lruvec(lruvec, sc); in shrink_node_memcgs()
3033 struct lruvec *target_lruvec; in shrink_node()
3354 struct lruvec *target_lruvec; in snapshot_refaults()
3423 struct lruvec *lruvec; in do_try_to_free_pages() local
3425 lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup, in do_try_to_free_pages()
3427 clear_bit(LRUVEC_CONGESTED, &lruvec->flags); in do_try_to_free_pages()
3648 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in mem_cgroup_shrink_node() local
3673 shrink_lruvec(lruvec, &sc); in mem_cgroup_shrink_node()
3725 struct lruvec *lruvec; in age_active_anon() local
3730 lruvec = mem_cgroup_lruvec(NULL, pgdat); in age_active_anon()
3731 if (!inactive_is_low(lruvec, LRU_INACTIVE_ANON)) in age_active_anon()
3736 lruvec = mem_cgroup_lruvec(memcg, pgdat); in age_active_anon()
3737 shrink_active_list(SWAP_CLUSTER_MAX, lruvec, in age_active_anon()
3806 struct lruvec *lruvec = mem_cgroup_lruvec(NULL, pgdat); in clear_pgdat_congested() local
3808 clear_bit(LRUVEC_CONGESTED, &lruvec->flags); in clear_pgdat_congested()
4661 struct lruvec *lruvec = NULL; in check_move_unevictable_pages() local
4680 lruvec = relock_page_lruvec_irq(page, lruvec); in check_move_unevictable_pages()
4682 del_page_from_lru_list(page, lruvec); in check_move_unevictable_pages()
4684 add_page_to_lru_list(page, lruvec); in check_move_unevictable_pages()
4690 if (lruvec) { in check_move_unevictable_pages()
4693 unlock_page_lruvec_irq(lruvec); in check_move_unevictable_pages()