Lines Matching refs:lru
109 #define lru_to_page(_head) (list_entry((_head)->prev, struct page, lru))
114 if ((_page)->lru.prev != _base) { \
117 prev = lru_to_page(&(_page->lru)); \
128 if ((_page)->lru.prev != _base) { \
131 prev = lru_to_page(&(_page->lru)); \
215 static unsigned long get_lru_size(struct lruvec *lruvec, enum lru_list lru) in get_lru_size() argument
218 return mem_cgroup_get_lru_size(lruvec, lru); in get_lru_size()
220 return zone_page_state(lruvec_zone(lruvec), NR_LRU_BASE + lru); in get_lru_size()
913 list_del(&page->lru); in shrink_page_list()
1025 list_add_tail(&page->lru, page_list); in shrink_page_list()
1195 list_add(&page->lru, &free_pages); in shrink_page_list()
1202 list_add(&page->lru, &ret_pages); in shrink_page_list()
1215 list_add(&page->lru, &ret_pages); in shrink_page_list()
1246 list_for_each_entry_safe(page, next, page_list, lru) { in reclaim_clean_pages_from_list()
1250 list_move(&page->lru, &clean_pages); in reclaim_clean_pages_from_list()
1359 isolate_mode_t mode, enum lru_list lru) in isolate_lru_pages() argument
1361 struct list_head *src = &lruvec->lists[lru]; in isolate_lru_pages()
1378 mem_cgroup_update_lru_size(lruvec, lru, -nr_pages); in isolate_lru_pages()
1379 list_move(&page->lru, dst); in isolate_lru_pages()
1385 list_move(&page->lru, src); in isolate_lru_pages()
1395 nr_taken, mode, is_file_lru(lru)); in isolate_lru_pages()
1437 int lru = page_lru(page); in isolate_lru_page() local
1440 del_page_from_lru_list(page, lruvec, lru); in isolate_lru_page()
1497 int lru; in putback_inactive_pages() local
1500 list_del(&page->lru); in putback_inactive_pages()
1511 lru = page_lru(page); in putback_inactive_pages()
1512 add_page_to_lru_list(page, lruvec, lru); in putback_inactive_pages()
1514 if (is_active_lru(lru)) { in putback_inactive_pages()
1515 int file = is_file_lru(lru); in putback_inactive_pages()
1522 del_page_from_lru_list(page, lruvec, lru); in putback_inactive_pages()
1530 list_add(&page->lru, &pages_to_free); in putback_inactive_pages()
1559 struct scan_control *sc, enum lru_list lru) in shrink_inactive_list() argument
1571 int file = is_file_lru(lru); in shrink_inactive_list()
1593 &nr_scanned, sc, isolate_mode, lru); in shrink_inactive_list()
1595 __mod_zone_page_state(zone, NR_LRU_BASE + lru, -nr_taken); in shrink_inactive_list()
1723 enum lru_list lru) in move_active_pages_to_lru() argument
1738 mem_cgroup_update_lru_size(lruvec, lru, nr_pages); in move_active_pages_to_lru()
1739 list_move(&page->lru, &lruvec->lists[lru]); in move_active_pages_to_lru()
1745 del_page_from_lru_list(page, lruvec, lru); in move_active_pages_to_lru()
1753 list_add(&page->lru, pages_to_free); in move_active_pages_to_lru()
1756 __mod_zone_page_state(zone, NR_LRU_BASE + lru, pgmoved); in move_active_pages_to_lru()
1757 if (!is_active_lru(lru)) in move_active_pages_to_lru()
1764 enum lru_list lru) in shrink_active_list() argument
1776 int file = is_file_lru(lru); in shrink_active_list()
1789 &nr_scanned, sc, isolate_mode, lru); in shrink_active_list()
1796 __mod_zone_page_state(zone, NR_LRU_BASE + lru, -nr_taken); in shrink_active_list()
1803 list_del(&page->lru); in shrink_active_list()
1831 list_add(&page->lru, &l_active); in shrink_active_list()
1837 list_add(&page->lru, &l_inactive); in shrink_active_list()
1852 move_active_pages_to_lru(lruvec, &l_active, &l_hold, lru); in shrink_active_list()
1853 move_active_pages_to_lru(lruvec, &l_inactive, &l_hold, lru - LRU_ACTIVE); in shrink_active_list()
1925 static bool inactive_list_is_low(struct lruvec *lruvec, enum lru_list lru) in inactive_list_is_low() argument
1927 if (is_file_lru(lru)) in inactive_list_is_low()
1933 static unsigned long shrink_list(enum lru_list lru, unsigned long nr_to_scan, in shrink_list() argument
1936 if (is_active_lru(lru)) { in shrink_list()
1937 if (inactive_list_is_low(lruvec, lru)) in shrink_list()
1938 shrink_active_list(nr_to_scan, lruvec, sc, lru); in shrink_list()
1942 return shrink_inactive_list(nr_to_scan, lruvec, sc, lru); in shrink_list()
1974 enum lru_list lru; in get_scan_count() local
2114 for_each_evictable_lru(lru) { in get_scan_count()
2115 int file = is_file_lru(lru); in get_scan_count()
2119 size = get_lru_size(lruvec, lru); in get_scan_count()
2151 nr[lru] = scan; in get_scan_count()
2188 enum lru_list lru; in shrink_lruvec() local
2221 for_each_evictable_lru(lru) { in shrink_lruvec()
2222 if (nr[lru]) { in shrink_lruvec()
2223 nr_to_scan = min(nr[lru], SWAP_CLUSTER_MAX); in shrink_lruvec()
2224 nr[lru] -= nr_to_scan; in shrink_lruvec()
2226 nr_reclaimed += shrink_list(lru, nr_to_scan, in shrink_lruvec()
2256 lru = LRU_BASE; in shrink_lruvec()
2261 lru = LRU_FILE; in shrink_lruvec()
2266 nr[lru] = 0; in shrink_lruvec()
2267 nr[lru + LRU_ACTIVE] = 0; in shrink_lruvec()
2273 lru = (lru == LRU_FILE) ? LRU_BASE : LRU_FILE; in shrink_lruvec()
2274 nr_scanned = targets[lru] - nr[lru]; in shrink_lruvec()
2275 nr[lru] = targets[lru] * (100 - percentage) / 100; in shrink_lruvec()
2276 nr[lru] -= min(nr[lru], nr_scanned); in shrink_lruvec()
2278 lru += LRU_ACTIVE; in shrink_lruvec()
2279 nr_scanned = targets[lru] - nr[lru]; in shrink_lruvec()
2280 nr[lru] = targets[lru] * (100 - percentage) / 100; in shrink_lruvec()
2281 nr[lru] -= min(nr[lru], nr_scanned); in shrink_lruvec()
3873 enum lru_list lru = page_lru_base_type(page); in check_move_unevictable_pages() local
3878 add_page_to_lru_list(page, lruvec, lru); in check_move_unevictable_pages()