History

mm: memcontrol: quarantine the mem_cgroup_[node_]nr_lru_pages() API

Only memcg_numa_stat_show() uses those wrappers and the lru bitmasks, group them together.

Johannes Weiner committed 7 years ago

Commit 113b7df1 parent 21d89d12 files · +36 −36Browse files

Unified · Split

2 files
  1. include/linux/mmzone.h +0 −5
  2. mm/memcontrol.c +36 −31
include/linux/mmzone.h+0−5
@@ -247,11 +247,6 @@ struct lruvec { · 246 unmodified lines
247#endif247#endif
248};248};
249 249
250/* Mask used at gathering information at once (see memcontrol.c) */
251#define LRU_ALL_FILE (BIT(LRU_INACTIVE_FILE) | BIT(LRU_ACTIVE_FILE))
252#define LRU_ALL_ANON (BIT(LRU_INACTIVE_ANON) | BIT(LRU_ACTIVE_ANON))
253#define LRU_ALL ((1 << NR_LRU_LISTS) - 1)
254
255/* Isolate unmapped file */250/* Isolate unmapped file */
256#define ISOLATE_UNMAPPED ((__force isolate_mode_t)0x2)251#define ISOLATE_UNMAPPED ((__force isolate_mode_t)0x2)
257/* Isolate for asynchronous migration */252/* Isolate for asynchronous migration */
mm/memcontrol.c+36−31
@@ -725,37 +725,6 @@ 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
728static unsigned long mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
729 int nid, unsigned int lru_mask)
730{
731 struct lruvec *lruvec = mem_cgroup_lruvec(NODE_DATA(nid), memcg);
732 unsigned long nr = 0;
733 enum lru_list lru;
734
735 VM_BUG_ON((unsigned)nid >= nr_node_ids);
736
737 for_each_lru(lru) {
738 if (!(BIT(lru) & lru_mask))
739 continue;
740 nr += lruvec_page_state(lruvec, NR_LRU_BASE + lru);
741 }
742 return nr;
743}
744
745static unsigned long mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg,
746 unsigned int lru_mask)
747{
748 unsigned long nr = 0;
749 enum lru_list lru;
750
751 for_each_lru(lru) {
752 if (!(BIT(lru) & lru_mask))
753 continue;
754 nr += memcg_page_state(memcg, NR_LRU_BASE + lru);
755 }
756 return nr;
757}
758
759static bool mem_cgroup_event_ratelimit(struct mem_cgroup *memcg,728static bool mem_cgroup_event_ratelimit(struct mem_cgroup *memcg,
760 enum mem_cgroup_events_target target)729 enum mem_cgroup_events_target target)
761{730{
@@ -3338,6 +3307,42 @@ static int mem_cgroup_move_charge_write(struct cgroup_subsys_state *css, · 2576 unmodified lines
3338#endif3307#endif
3339 3308
3340#ifdef CONFIG_NUMA3309#ifdef CONFIG_NUMA
3310
3311#define LRU_ALL_FILE (BIT(LRU_INACTIVE_FILE) | BIT(LRU_ACTIVE_FILE))
3312#define LRU_ALL_ANON (BIT(LRU_INACTIVE_ANON) | BIT(LRU_ACTIVE_ANON))
3313#define LRU_ALL ((1 << NR_LRU_LISTS) - 1)
3314
3315static unsigned long mem_cgroup_node_nr_lru_pages(struct mem_cgroup *memcg,
3316 int nid, unsigned int lru_mask)
3317{
3318 struct lruvec *lruvec = mem_cgroup_lruvec(NODE_DATA(nid), memcg);
3319 unsigned long nr = 0;
3320 enum lru_list lru;
3321
3322 VM_BUG_ON((unsigned)nid >= nr_node_ids);
3323
3324 for_each_lru(lru) {
3325 if (!(BIT(lru) & lru_mask))
3326 continue;
3327 nr += lruvec_page_state(lruvec, NR_LRU_BASE + lru);
3328 }
3329 return nr;
3330}
3331
3332static unsigned long mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg,
3333 unsigned int lru_mask)
3334{
3335 unsigned long nr = 0;
3336 enum lru_list lru;
3337
3338 for_each_lru(lru) {
3339 if (!(BIT(lru) & lru_mask))
3340 continue;
3341 nr += memcg_page_state(memcg, NR_LRU_BASE + lru);
3342 }
3343 return nr;
3344}
3345
3341static int memcg_numa_stat_show(struct seq_file *m, void *v)3346static int memcg_numa_stat_show(struct seq_file *m, void *v)
3342{3347{
3343 struct numa_stat {3348 struct numa_stat {

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