History

mm: memcontrol: push down mem_cgroup_node_nr_lru_pages()

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.

Johannes Weiner committed 7 years ago

Commit 2b487e51 parent 22796c83 files · +10 −15Browse files

Unified · Split

3 files
  1. include/linux/memcontrol.h +0 −10
  2. mm/memcontrol.c +7 −3
  3. mm/workingset.c +3 −2
include/linux/memcontrol.h+0−10
@@ -501,9 +501,6 @@ int mem_cgroup_select_victim_node(struct mem_cgroup *memcg); · 500 unmodified lines
501501 void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru,
502502 int zid, int nr_pages);
503503
504−unsigned long mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
505− int nid, unsigned int lru_mask);
506−
507504 static inline
508505 unsigned long mem_cgroup_get_zone_lru_size(struct lruvec *lruvec,
509506 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
954951 return 0;
955952 }
956953
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−
964954 static inline unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg)
965955 {
966956 return 0;
mm/memcontrol.c+7−3
@@ -725,7 +725,7 @@ static void mem_cgroup_charge_statistics(struct mem_cgroup *memcg, · 724 unmodified lines
725725 __this_cpu_add(memcg->stat_cpu->nr_page_events, nr_pages);
726726 }
727727
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,
729729 int nid, unsigned int lru_mask)
730730 {
731731 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
14251425 static bool test_mem_cgroup_node_reclaimable(struct mem_cgroup *memcg,
14261426 int nid, bool noswap)
14271427 {
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))
14291432 return true;
14301433 if (noswap || !total_swap_pages)
14311434 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))
14331437 return true;
14341438 return false;
14351439
mm/workingset.c+3−2
@@ -426,10 +426,11 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker, · 425 unmodified lines
426426 #ifdef CONFIG_MEMCG
427427 if (sc->memcg) {
428428 struct lruvec *lruvec;
429+ int i;
429430
430− pages = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid,
431− LRU_ALL);
432431 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);
433434 pages += lruvec_page_state(lruvec, NR_SLAB_RECLAIMABLE);
434435 pages += lruvec_page_state(lruvec, NR_SLAB_UNRECLAIMABLE);
435436 } else

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t