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 | } |
