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)); \
184 static unsigned long get_lru_size(struct lruvec *lruvec, enum lru_list lru) in get_lru_size() argument
187 return mem_cgroup_get_lru_size(lruvec, lru); in get_lru_size()
189 return zone_page_state(lruvec_zone(lruvec), NR_LRU_BASE + lru); in get_lru_size()
876 list_del(&page->lru); in shrink_page_list()
1149 list_add(&page->lru, &free_pages); in shrink_page_list()
1156 list_add(&page->lru, &ret_pages); in shrink_page_list()
1169 list_add(&page->lru, &ret_pages); in shrink_page_list()
1199 list_for_each_entry_safe(page, next, page_list, lru) { in reclaim_clean_pages_from_list()
1203 list_move(&page->lru, &clean_pages); in reclaim_clean_pages_from_list()
1312 isolate_mode_t mode, enum lru_list lru) in isolate_lru_pages() argument
1314 struct list_head *src = &lruvec->lists[lru]; in isolate_lru_pages()
1330 mem_cgroup_update_lru_size(lruvec, lru, -nr_pages); in isolate_lru_pages()
1331 list_move(&page->lru, dst); in isolate_lru_pages()
1337 list_move(&page->lru, src); in isolate_lru_pages()
1347 nr_taken, mode, is_file_lru(lru)); in isolate_lru_pages()
1389 int lru = page_lru(page); in isolate_lru_page() local
1392 del_page_from_lru_list(page, lruvec, lru); in isolate_lru_page()
1449 int lru; in putback_inactive_pages() local
1452 list_del(&page->lru); in putback_inactive_pages()
1463 lru = page_lru(page); in putback_inactive_pages()
1464 add_page_to_lru_list(page, lruvec, lru); in putback_inactive_pages()
1466 if (is_active_lru(lru)) { in putback_inactive_pages()
1467 int file = is_file_lru(lru); in putback_inactive_pages()
1474 del_page_from_lru_list(page, lruvec, lru); in putback_inactive_pages()
1482 list_add(&page->lru, &pages_to_free); in putback_inactive_pages()
1511 struct scan_control *sc, enum lru_list lru) in shrink_inactive_list() argument
1523 int file = is_file_lru(lru); in shrink_inactive_list()
1545 &nr_scanned, sc, isolate_mode, lru); in shrink_inactive_list()
1547 __mod_zone_page_state(zone, NR_LRU_BASE + lru, -nr_taken); in shrink_inactive_list()
1675 enum lru_list lru) in move_active_pages_to_lru() argument
1690 mem_cgroup_update_lru_size(lruvec, lru, nr_pages); in move_active_pages_to_lru()
1691 list_move(&page->lru, &lruvec->lists[lru]); in move_active_pages_to_lru()
1697 del_page_from_lru_list(page, lruvec, lru); in move_active_pages_to_lru()
1705 list_add(&page->lru, pages_to_free); in move_active_pages_to_lru()
1708 __mod_zone_page_state(zone, NR_LRU_BASE + lru, pgmoved); in move_active_pages_to_lru()
1709 if (!is_active_lru(lru)) in move_active_pages_to_lru()
1716 enum lru_list lru) in shrink_active_list() argument
1728 int file = is_file_lru(lru); in shrink_active_list()
1741 &nr_scanned, sc, isolate_mode, lru); in shrink_active_list()
1748 __mod_zone_page_state(zone, NR_LRU_BASE + lru, -nr_taken); in shrink_active_list()
1755 list_del(&page->lru); in shrink_active_list()
1783 list_add(&page->lru, &l_active); in shrink_active_list()
1789 list_add(&page->lru, &l_inactive); in shrink_active_list()
1804 move_active_pages_to_lru(lruvec, &l_active, &l_hold, lru); in shrink_active_list()
1805 move_active_pages_to_lru(lruvec, &l_inactive, &l_hold, lru - LRU_ACTIVE); in shrink_active_list()
1880 static int inactive_list_is_low(struct lruvec *lruvec, enum lru_list lru) in inactive_list_is_low() argument
1882 if (is_file_lru(lru)) in inactive_list_is_low()
1888 static unsigned long shrink_list(enum lru_list lru, unsigned long nr_to_scan, in shrink_list() argument
1891 if (is_active_lru(lru)) { in shrink_list()
1892 if (inactive_list_is_low(lruvec, lru)) in shrink_list()
1893 shrink_active_list(nr_to_scan, lruvec, sc, lru); in shrink_list()
1897 return shrink_inactive_list(nr_to_scan, lruvec, sc, lru); in shrink_list()
1929 enum lru_list lru; in get_scan_count() local
2069 for_each_evictable_lru(lru) { in get_scan_count()
2070 int file = is_file_lru(lru); in get_scan_count()
2074 size = get_lru_size(lruvec, lru); in get_scan_count()
2106 nr[lru] = scan; in get_scan_count()
2126 enum lru_list lru; in shrink_lruvec() local
2157 for_each_evictable_lru(lru) { in shrink_lruvec()
2158 if (nr[lru]) { in shrink_lruvec()
2159 nr_to_scan = min(nr[lru], SWAP_CLUSTER_MAX); in shrink_lruvec()
2160 nr[lru] -= nr_to_scan; in shrink_lruvec()
2162 nr_reclaimed += shrink_list(lru, nr_to_scan, in shrink_lruvec()
2192 lru = LRU_BASE; in shrink_lruvec()
2197 lru = LRU_FILE; in shrink_lruvec()
2202 nr[lru] = 0; in shrink_lruvec()
2203 nr[lru + LRU_ACTIVE] = 0; in shrink_lruvec()
2209 lru = (lru == LRU_FILE) ? LRU_BASE : LRU_FILE; in shrink_lruvec()
2210 nr_scanned = targets[lru] - nr[lru]; in shrink_lruvec()
2211 nr[lru] = targets[lru] * (100 - percentage) / 100; in shrink_lruvec()
2212 nr[lru] -= min(nr[lru], nr_scanned); in shrink_lruvec()
2214 lru += LRU_ACTIVE; in shrink_lruvec()
2215 nr_scanned = targets[lru] - nr[lru]; in shrink_lruvec()
2216 nr[lru] = targets[lru] * (100 - percentage) / 100; in shrink_lruvec()
2217 nr[lru] -= min(nr[lru], nr_scanned); in shrink_lruvec()
3808 enum lru_list lru = page_lru_base_type(page); in check_move_unevictable_pages() local
3813 add_page_to_lru_list(page, lruvec, lru); in check_move_unevictable_pages()