aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/memcontrol.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/memcontrol.h')
-rw-r--r--include/linux/memcontrol.h36
1 files changed, 28 insertions, 8 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index bf9213b2db8f..44301c6affa8 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -54,6 +54,11 @@ extern void mem_cgroup_rotate_lru_list(struct page *page, enum lru_list lru);
54extern void mem_cgroup_del_lru(struct page *page); 54extern void mem_cgroup_del_lru(struct page *page);
55extern void mem_cgroup_move_lists(struct page *page, 55extern void mem_cgroup_move_lists(struct page *page,
56 enum lru_list from, enum lru_list to); 56 enum lru_list from, enum lru_list to);
57
58/* For coalescing uncharge for reducing memcg' overhead*/
59extern void mem_cgroup_uncharge_start(void);
60extern void mem_cgroup_uncharge_end(void);
61
57extern void mem_cgroup_uncharge_page(struct page *page); 62extern void mem_cgroup_uncharge_page(struct page *page);
58extern void mem_cgroup_uncharge_cache_page(struct page *page); 63extern void mem_cgroup_uncharge_cache_page(struct page *page);
59extern int mem_cgroup_shmem_charge_fallback(struct page *page, 64extern int mem_cgroup_shmem_charge_fallback(struct page *page,
@@ -68,6 +73,7 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
68extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); 73extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask);
69int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); 74int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem);
70 75
76extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page);
71extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p); 77extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p);
72 78
73static inline 79static inline
@@ -80,6 +86,8 @@ int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
80 return cgroup == mem; 86 return cgroup == mem;
81} 87}
82 88
89extern struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *mem);
90
83extern int 91extern int
84mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr); 92mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr);
85extern void mem_cgroup_end_migration(struct mem_cgroup *mem, 93extern void mem_cgroup_end_migration(struct mem_cgroup *mem,
@@ -116,8 +124,7 @@ static inline bool mem_cgroup_disabled(void)
116 return false; 124 return false;
117} 125}
118 126
119extern bool mem_cgroup_oom_called(struct task_struct *task); 127void mem_cgroup_update_file_mapped(struct page *page, int val);
120void mem_cgroup_update_mapped_file_stat(struct page *page, int val);
121unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, 128unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order,
122 gfp_t gfp_mask, int nid, 129 gfp_t gfp_mask, int nid,
123 int zid); 130 int zid);
@@ -151,6 +158,14 @@ static inline void mem_cgroup_cancel_charge_swapin(struct mem_cgroup *ptr)
151{ 158{
152} 159}
153 160
161static inline void mem_cgroup_uncharge_start(void)
162{
163}
164
165static inline void mem_cgroup_uncharge_end(void)
166{
167}
168
154static inline void mem_cgroup_uncharge_page(struct page *page) 169static inline void mem_cgroup_uncharge_page(struct page *page)
155{ 170{
156} 171}
@@ -189,6 +204,11 @@ mem_cgroup_move_lists(struct page *page, enum lru_list from, enum lru_list to)
189{ 204{
190} 205}
191 206
207static inline struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page)
208{
209 return NULL;
210}
211
192static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) 212static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem)
193{ 213{
194 return 1; 214 return 1;
@@ -200,6 +220,11 @@ static inline int task_in_mem_cgroup(struct task_struct *task,
200 return 1; 220 return 1;
201} 221}
202 222
223static inline struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *mem)
224{
225 return NULL;
226}
227
203static inline int 228static inline int
204mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr) 229mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr)
205{ 230{
@@ -232,11 +257,6 @@ static inline bool mem_cgroup_disabled(void)
232 return true; 257 return true;
233} 258}
234 259
235static inline bool mem_cgroup_oom_called(struct task_struct *task)
236{
237 return false;
238}
239
240static inline int 260static inline int
241mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg) 261mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg)
242{ 262{
@@ -274,7 +294,7 @@ mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p)
274{ 294{
275} 295}
276 296
277static inline void mem_cgroup_update_mapped_file_stat(struct page *page, 297static inline void mem_cgroup_update_file_mapped(struct page *page,
278 int val) 298 int val)
279{ 299{
280} 300}