diff options
Diffstat (limited to 'include/linux/memcontrol.h')
-rw-r--r-- | include/linux/memcontrol.h | 36 |
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); | |||
54 | extern void mem_cgroup_del_lru(struct page *page); | 54 | extern void mem_cgroup_del_lru(struct page *page); |
55 | extern void mem_cgroup_move_lists(struct page *page, | 55 | extern 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*/ | ||
59 | extern void mem_cgroup_uncharge_start(void); | ||
60 | extern void mem_cgroup_uncharge_end(void); | ||
61 | |||
57 | extern void mem_cgroup_uncharge_page(struct page *page); | 62 | extern void mem_cgroup_uncharge_page(struct page *page); |
58 | extern void mem_cgroup_uncharge_cache_page(struct page *page); | 63 | extern void mem_cgroup_uncharge_cache_page(struct page *page); |
59 | extern int mem_cgroup_shmem_charge_fallback(struct page *page, | 64 | extern 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, | |||
68 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); | 73 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); |
69 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); | 74 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); |
70 | 75 | ||
76 | extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page); | ||
71 | extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p); | 77 | extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p); |
72 | 78 | ||
73 | static inline | 79 | static 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 | ||
89 | extern struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *mem); | ||
90 | |||
83 | extern int | 91 | extern int |
84 | mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr); | 92 | mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr); |
85 | extern void mem_cgroup_end_migration(struct mem_cgroup *mem, | 93 | extern 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 | ||
119 | extern bool mem_cgroup_oom_called(struct task_struct *task); | 127 | void mem_cgroup_update_file_mapped(struct page *page, int val); |
120 | void mem_cgroup_update_mapped_file_stat(struct page *page, int val); | ||
121 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | 128 | unsigned 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 | ||
161 | static inline void mem_cgroup_uncharge_start(void) | ||
162 | { | ||
163 | } | ||
164 | |||
165 | static inline void mem_cgroup_uncharge_end(void) | ||
166 | { | ||
167 | } | ||
168 | |||
154 | static inline void mem_cgroup_uncharge_page(struct page *page) | 169 | static 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 | ||
207 | static inline struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page) | ||
208 | { | ||
209 | return NULL; | ||
210 | } | ||
211 | |||
192 | static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) | 212 | static 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 | ||
223 | static inline struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *mem) | ||
224 | { | ||
225 | return NULL; | ||
226 | } | ||
227 | |||
203 | static inline int | 228 | static inline int |
204 | mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr) | 229 | mem_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 | ||
235 | static inline bool mem_cgroup_oom_called(struct task_struct *task) | ||
236 | { | ||
237 | return false; | ||
238 | } | ||
239 | |||
240 | static inline int | 260 | static inline int |
241 | mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg) | 261 | mem_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 | ||
277 | static inline void mem_cgroup_update_mapped_file_stat(struct page *page, | 297 | static inline void mem_cgroup_update_file_mapped(struct page *page, |
278 | int val) | 298 | int val) |
279 | { | 299 | { |
280 | } | 300 | } |