diff options
Diffstat (limited to 'include/linux/memcontrol.h')
-rw-r--r-- | include/linux/memcontrol.h | 58 |
1 files changed, 17 insertions, 41 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 19df5d857411..6b75640ef5ab 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -139,48 +139,23 @@ static inline bool mem_cgroup_disabled(void) | |||
139 | return false; | 139 | return false; |
140 | } | 140 | } |
141 | 141 | ||
142 | void __mem_cgroup_begin_update_page_stat(struct page *page, bool *locked, | 142 | struct mem_cgroup *mem_cgroup_begin_page_stat(struct page *page, bool *locked, |
143 | unsigned long *flags); | 143 | unsigned long *flags); |
144 | 144 | void mem_cgroup_end_page_stat(struct mem_cgroup *memcg, bool locked, | |
145 | extern atomic_t memcg_moving; | 145 | unsigned long flags); |
146 | 146 | void mem_cgroup_update_page_stat(struct mem_cgroup *memcg, | |
147 | static inline void mem_cgroup_begin_update_page_stat(struct page *page, | 147 | enum mem_cgroup_stat_index idx, int val); |
148 | bool *locked, unsigned long *flags) | 148 | |
149 | { | 149 | static inline void mem_cgroup_inc_page_stat(struct mem_cgroup *memcg, |
150 | if (mem_cgroup_disabled()) | ||
151 | return; | ||
152 | rcu_read_lock(); | ||
153 | *locked = false; | ||
154 | if (atomic_read(&memcg_moving)) | ||
155 | __mem_cgroup_begin_update_page_stat(page, locked, flags); | ||
156 | } | ||
157 | |||
158 | void __mem_cgroup_end_update_page_stat(struct page *page, | ||
159 | unsigned long *flags); | ||
160 | static inline void mem_cgroup_end_update_page_stat(struct page *page, | ||
161 | bool *locked, unsigned long *flags) | ||
162 | { | ||
163 | if (mem_cgroup_disabled()) | ||
164 | return; | ||
165 | if (*locked) | ||
166 | __mem_cgroup_end_update_page_stat(page, flags); | ||
167 | rcu_read_unlock(); | ||
168 | } | ||
169 | |||
170 | void mem_cgroup_update_page_stat(struct page *page, | ||
171 | enum mem_cgroup_stat_index idx, | ||
172 | int val); | ||
173 | |||
174 | static inline void mem_cgroup_inc_page_stat(struct page *page, | ||
175 | enum mem_cgroup_stat_index idx) | 150 | enum mem_cgroup_stat_index idx) |
176 | { | 151 | { |
177 | mem_cgroup_update_page_stat(page, idx, 1); | 152 | mem_cgroup_update_page_stat(memcg, idx, 1); |
178 | } | 153 | } |
179 | 154 | ||
180 | static inline void mem_cgroup_dec_page_stat(struct page *page, | 155 | static inline void mem_cgroup_dec_page_stat(struct mem_cgroup *memcg, |
181 | enum mem_cgroup_stat_index idx) | 156 | enum mem_cgroup_stat_index idx) |
182 | { | 157 | { |
183 | mem_cgroup_update_page_stat(page, idx, -1); | 158 | mem_cgroup_update_page_stat(memcg, idx, -1); |
184 | } | 159 | } |
185 | 160 | ||
186 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | 161 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, |
@@ -315,13 +290,14 @@ mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) | |||
315 | { | 290 | { |
316 | } | 291 | } |
317 | 292 | ||
318 | static inline void mem_cgroup_begin_update_page_stat(struct page *page, | 293 | static inline struct mem_cgroup *mem_cgroup_begin_page_stat(struct page *page, |
319 | bool *locked, unsigned long *flags) | 294 | bool *locked, unsigned long *flags) |
320 | { | 295 | { |
296 | return NULL; | ||
321 | } | 297 | } |
322 | 298 | ||
323 | static inline void mem_cgroup_end_update_page_stat(struct page *page, | 299 | static inline void mem_cgroup_end_page_stat(struct mem_cgroup *memcg, |
324 | bool *locked, unsigned long *flags) | 300 | bool locked, unsigned long flags) |
325 | { | 301 | { |
326 | } | 302 | } |
327 | 303 | ||
@@ -343,12 +319,12 @@ static inline bool mem_cgroup_oom_synchronize(bool wait) | |||
343 | return false; | 319 | return false; |
344 | } | 320 | } |
345 | 321 | ||
346 | static inline void mem_cgroup_inc_page_stat(struct page *page, | 322 | static inline void mem_cgroup_inc_page_stat(struct mem_cgroup *memcg, |
347 | enum mem_cgroup_stat_index idx) | 323 | enum mem_cgroup_stat_index idx) |
348 | { | 324 | { |
349 | } | 325 | } |
350 | 326 | ||
351 | static inline void mem_cgroup_dec_page_stat(struct page *page, | 327 | static inline void mem_cgroup_dec_page_stat(struct mem_cgroup *memcg, |
352 | enum mem_cgroup_stat_index idx) | 328 | enum mem_cgroup_stat_index idx) |
353 | { | 329 | { |
354 | } | 330 | } |