mem_cgroup_node_nr_lru_pages() is just a convenience wrapper around lruvec_page_state() that takes bitmasks of lru indexes and aggregates the counts for those. Replace callsites where the bitmask is simple enough with direct lruvec_page_state() calls. This removes the last extern user of mem_cgroup_node_nr_lru_pages(), so make that function private again, too.
Unified · Split
| @@ -501,9 +501,6 @@ int mem_cgroup_select_victim_node(struct mem_cgroup *memcg); · 500 unmodified lines | |||
| 501 | void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, | 501 | void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, |
| 502 | int zid, int nr_pages); | 502 | int zid, int nr_pages); |
| 503 | 503 | ||
| 504 | unsigned long mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg, | ||
| 505 | int nid, unsigned int lru_mask); | ||
| 506 | |||
| 507 | static inline | 504 | static inline |
| 508 | unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, | 505 | unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, |
| 509 | enum lru_list lru, int zone_idx) | 506 | enum lru_list lru, int zone_idx) |
| @@ -954,13 +951,6 @@ unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec, · 444 unmodified lines | |||
| 954 | return 0; | 951 | return 0; |
| 955 | } | 952 | } |
| 956 | 953 | ||
| 957 | static inline unsigned long | ||
| 958 | mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg, | ||
| 959 | int nid, unsigned int lru_mask) | ||
| 960 | { | ||
| 961 | return 0; | ||
| 962 | } | ||
| 963 | |||
| 964 | static inline unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) | 954 | static inline unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) |
| 965 | { | 955 | { |
| 966 | return 0; | 956 | return 0; |
| @@ -725,7 +725,7 @@ static void mem_cgroup_charge_statistics(struct mem_cgroup *memcg, · 724 unmodified lines | |||
| 725 | __this_cpu_add(memcg->stat_cpu->nr_page_events, nr_pages); | 725 | __this_cpu_add(memcg->stat_cpu->nr_page_events, nr_pages); |
| 726 | } | 726 | } |
| 727 | 727 | ||
| 728 | unsigned long mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg, | 728 | static unsigned long mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg, |
| 729 | int nid, unsigned int lru_mask) | 729 | int nid, unsigned int lru_mask) |
| 730 | { | 730 | { |
| 731 | struct lruvec *lruvec = mem_cgroup_lruvec(NODE_DATA(nid), memcg); | 731 | struct lruvec *lruvec = mem_cgroup_lruvec(NODE_DATA(nid), memcg); |
| @@ -1425,11 +1425,15 @@ static bool mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, · 693 unmodified lines | |||
| 1425 | static bool test_mem_cgroup_node_reclaimable(struct mem_cgroup *memcg, | 1425 | static bool test_mem_cgroup_node_reclaimable(struct mem_cgroup *memcg, |
| 1426 | int nid, bool noswap) | 1426 | int nid, bool noswap) |
| 1427 | { | 1427 | { |
| 1428 | if (mem_cgroup_node_nr_lru_pages(memcg, nid, LRU_ALL_FILE)) | 1428 | struct lruvec *lruvec = mem_cgroup_lruvec(NODE_DATA(nid), memcg); |
| 1429 | |||
| 1430 | if (lruvec_page_state(lruvec, NR_INACTIVE_FILE) || | ||
| 1431 | lruvec_page_state(lruvec, NR_ACTIVE_FILE)) | ||
| 1429 | return true; | 1432 | return true; |
| 1430 | if (noswap || !total_swap_pages) | 1433 | if (noswap || !total_swap_pages) |
| 1431 | return false; | 1434 | return false; |
| 1432 | if (mem_cgroup_node_nr_lru_pages(memcg, nid, LRU_ALL_ANON)) | 1435 | if (lruvec_page_state(lruvec, NR_INACTIVE_ANON) || |
| 1436 | lruvec_page_state(lruvec, NR_ACTIVE_ANON)) | ||
| 1433 | return true; | 1437 | return true; |
| 1434 | return false; | 1438 | return false; |
| 1435 | 1439 | ||
| @@ -426,10 +426,11 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker, · 425 unmodified lines | |||
| 426 | #ifdef CONFIG_MEMCG | 426 | #ifdef CONFIG_MEMCG |
| 427 | if (sc->memcg) { | 427 | if (sc->memcg) { |
| 428 | struct lruvec *lruvec; | 428 | struct lruvec *lruvec; |
| 429 | int i; | ||
| 429 | 430 | ||
| 430 | pages = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid, | ||
| 431 | LRU_ALL); | ||
| 432 | lruvec = mem_cgroup_lruvec(NODE_DATA(sc->nid), sc->memcg); | 431 | lruvec = mem_cgroup_lruvec(NODE_DATA(sc->nid), sc->memcg); |
| 432 | for (pages = 0, i = 0; i < NR_LRU_LISTS; i++) | ||
| 433 | pages += lruvec_page_state(lruvec, NR_LRU_BASE + i); | ||
| 433 | pages += lruvec_page_state(lruvec, NR_SLAB_RECLAIMABLE); | 434 | pages += lruvec_page_state(lruvec, NR_SLAB_RECLAIMABLE); |
| 434 | pages += lruvec_page_state(lruvec, NR_SLAB_UNRECLAIMABLE); | 435 | pages += lruvec_page_state(lruvec, NR_SLAB_UNRECLAIMABLE); |
| 435 | } else | 436 | } else |