diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/memcontrol.h | 9 | ||||
-rw-r--r-- | include/linux/oom.h | 16 |
2 files changed, 18 insertions, 7 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index c0bff8976a69..2a80544aec99 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -180,7 +180,8 @@ static inline void mem_cgroup_dec_page_stat(struct page *page, | |||
180 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | 180 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, |
181 | gfp_t gfp_mask, | 181 | gfp_t gfp_mask, |
182 | unsigned long *total_scanned); | 182 | unsigned long *total_scanned); |
183 | u64 mem_cgroup_get_limit(struct mem_cgroup *memcg); | 183 | extern void __mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, |
184 | int order); | ||
184 | 185 | ||
185 | void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx); | 186 | void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx); |
186 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 187 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
@@ -364,12 +365,6 @@ unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | |||
364 | return 0; | 365 | return 0; |
365 | } | 366 | } |
366 | 367 | ||
367 | static inline | ||
368 | u64 mem_cgroup_get_limit(struct mem_cgroup *memcg) | ||
369 | { | ||
370 | return 0; | ||
371 | } | ||
372 | |||
373 | static inline void mem_cgroup_split_huge_fixup(struct page *head) | 368 | static inline void mem_cgroup_split_huge_fixup(struct page *head) |
374 | { | 369 | { |
375 | } | 370 | } |
diff --git a/include/linux/oom.h b/include/linux/oom.h index eb9dc14362c5..5dc0e384ae9e 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h | |||
@@ -40,17 +40,33 @@ enum oom_constraint { | |||
40 | CONSTRAINT_MEMCG, | 40 | CONSTRAINT_MEMCG, |
41 | }; | 41 | }; |
42 | 42 | ||
43 | enum oom_scan_t { | ||
44 | OOM_SCAN_OK, /* scan thread and find its badness */ | ||
45 | OOM_SCAN_CONTINUE, /* do not consider thread for oom kill */ | ||
46 | OOM_SCAN_ABORT, /* abort the iteration and return */ | ||
47 | OOM_SCAN_SELECT, /* always select this thread first */ | ||
48 | }; | ||
49 | |||
43 | extern void compare_swap_oom_score_adj(int old_val, int new_val); | 50 | extern void compare_swap_oom_score_adj(int old_val, int new_val); |
44 | extern int test_set_oom_score_adj(int new_val); | 51 | extern int test_set_oom_score_adj(int new_val); |
45 | 52 | ||
46 | extern unsigned long oom_badness(struct task_struct *p, | 53 | extern unsigned long oom_badness(struct task_struct *p, |
47 | struct mem_cgroup *memcg, const nodemask_t *nodemask, | 54 | struct mem_cgroup *memcg, const nodemask_t *nodemask, |
48 | unsigned long totalpages); | 55 | unsigned long totalpages); |
56 | extern void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, | ||
57 | unsigned int points, unsigned long totalpages, | ||
58 | struct mem_cgroup *memcg, nodemask_t *nodemask, | ||
59 | const char *message); | ||
60 | |||
49 | extern int try_set_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); | 61 | extern int try_set_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); |
50 | extern void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); | 62 | extern void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); |
51 | 63 | ||
64 | extern enum oom_scan_t oom_scan_process_thread(struct task_struct *task, | ||
65 | unsigned long totalpages, const nodemask_t *nodemask, | ||
66 | bool force_kill); | ||
52 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, | 67 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, |
53 | int order); | 68 | int order); |
69 | |||
54 | extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, | 70 | extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, |
55 | int order, nodemask_t *mask, bool force_kill); | 71 | int order, nodemask_t *mask, bool force_kill); |
56 | extern int register_oom_notifier(struct notifier_block *nb); | 72 | extern int register_oom_notifier(struct notifier_block *nb); |