diff options
Diffstat (limited to 'include/linux/memcontrol.h')
| -rw-r--r-- | include/linux/memcontrol.h | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index bf9213b2db8f..1f9b119f4ace 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, |
| @@ -117,7 +125,7 @@ static inline bool mem_cgroup_disabled(void) | |||
| 117 | } | 125 | } |
| 118 | 126 | ||
| 119 | extern bool mem_cgroup_oom_called(struct task_struct *task); | 127 | extern bool mem_cgroup_oom_called(struct task_struct *task); |
| 120 | void mem_cgroup_update_mapped_file_stat(struct page *page, int val); | 128 | void mem_cgroup_update_file_mapped(struct page *page, int val); |
| 121 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | 129 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, |
| 122 | gfp_t gfp_mask, int nid, | 130 | gfp_t gfp_mask, int nid, |
| 123 | int zid); | 131 | int zid); |
| @@ -151,6 +159,14 @@ static inline void mem_cgroup_cancel_charge_swapin(struct mem_cgroup *ptr) | |||
| 151 | { | 159 | { |
| 152 | } | 160 | } |
| 153 | 161 | ||
| 162 | static inline void mem_cgroup_uncharge_start(void) | ||
| 163 | { | ||
| 164 | } | ||
| 165 | |||
| 166 | static inline void mem_cgroup_uncharge_end(void) | ||
| 167 | { | ||
| 168 | } | ||
| 169 | |||
| 154 | static inline void mem_cgroup_uncharge_page(struct page *page) | 170 | static inline void mem_cgroup_uncharge_page(struct page *page) |
| 155 | { | 171 | { |
| 156 | } | 172 | } |
| @@ -189,6 +205,11 @@ mem_cgroup_move_lists(struct page *page, enum lru_list from, enum lru_list to) | |||
| 189 | { | 205 | { |
| 190 | } | 206 | } |
| 191 | 207 | ||
| 208 | static inline struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page) | ||
| 209 | { | ||
| 210 | return NULL; | ||
| 211 | } | ||
| 212 | |||
| 192 | static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) | 213 | static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem) |
| 193 | { | 214 | { |
| 194 | return 1; | 215 | return 1; |
| @@ -200,6 +221,11 @@ static inline int task_in_mem_cgroup(struct task_struct *task, | |||
| 200 | return 1; | 221 | return 1; |
| 201 | } | 222 | } |
| 202 | 223 | ||
| 224 | static inline struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *mem) | ||
| 225 | { | ||
| 226 | return NULL; | ||
| 227 | } | ||
| 228 | |||
| 203 | static inline int | 229 | static inline int |
| 204 | mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr) | 230 | mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr) |
| 205 | { | 231 | { |
| @@ -274,7 +300,7 @@ mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) | |||
| 274 | { | 300 | { |
| 275 | } | 301 | } |
| 276 | 302 | ||
| 277 | static inline void mem_cgroup_update_mapped_file_stat(struct page *page, | 303 | static inline void mem_cgroup_update_file_mapped(struct page *page, |
| 278 | int val) | 304 | int val) |
| 279 | { | 305 | { |
| 280 | } | 306 | } |
