From: Zi Yan <ziy@xxxxxxxxxx> Signed-off-by: Zi Yan <ziy@xxxxxxxxxx> --- include/linux/mm_inline.h | 21 +++++++++++++++++++++ mm/vmscan.c | 25 ++----------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index 04ec454..b9fbd0b 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -44,6 +44,27 @@ static __always_inline void update_lru_size(struct lruvec *lruvec, #endif } +/* + * Update LRU sizes after isolating pages. The LRU size updates must + * be complete before mem_cgroup_update_lru_size due to a santity check. + */ +static __always_inline void update_lru_sizes(struct lruvec *lruvec, + enum lru_list lru, unsigned long *nr_zone_taken) +{ + int zid; + + for (zid = 0; zid < MAX_NR_ZONES; zid++) { + if (!nr_zone_taken[zid]) + continue; + + __update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); +#ifdef CONFIG_MEMCG + mem_cgroup_update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); +#endif + } + +} + static __always_inline void add_page_to_lru_list(struct page *page, struct lruvec *lruvec, enum lru_list lru) { diff --git a/mm/vmscan.c b/mm/vmscan.c index a5ad0b3..1d539d6 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1593,27 +1593,6 @@ int __isolate_lru_page(struct page *page, isolate_mode_t mode) } -/* - * Update LRU sizes after isolating pages. The LRU size updates must - * be complete before mem_cgroup_update_lru_size due to a santity check. - */ -static __always_inline void update_lru_sizes(struct lruvec *lruvec, - enum lru_list lru, unsigned long *nr_zone_taken) -{ - int zid; - - for (zid = 0; zid < MAX_NR_ZONES; zid++) { - if (!nr_zone_taken[zid]) - continue; - - __update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); -#ifdef CONFIG_MEMCG - mem_cgroup_update_lru_size(lruvec, lru, zid, -nr_zone_taken[zid]); -#endif - } - -} - /** * pgdat->lru_lock is heavily contended. Some of the functions that * shrink the lists perform better by taking out a batch of pages @@ -1804,7 +1783,7 @@ static int too_many_isolated(struct pglist_data *pgdat, int file, return isolated > inactive; } -static noinline_for_stack void +noinline_for_stack void putback_inactive_pages(struct lruvec *lruvec, struct list_head *page_list) { struct zone_reclaim_stat *reclaim_stat = &lruvec->reclaim_stat; @@ -2003,7 +1982,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec, * Returns the number of pages moved to the given lru. */ -static unsigned move_active_pages_to_lru(struct lruvec *lruvec, +unsigned move_active_pages_to_lru(struct lruvec *lruvec, struct list_head *list, struct list_head *pages_to_free, enum lru_list lru) -- 2.7.4