|
@@ -556,8 +556,8 @@ void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
|
|
|
/*
|
|
|
* Determines whether the kernel must panic because of the panic_on_oom sysctl.
|
|
|
*/
|
|
|
-static void check_panic_on_oom(enum oom_constraint constraint, gfp_t gfp_mask,
|
|
|
- int order, const nodemask_t *nodemask)
|
|
|
+void check_panic_on_oom(enum oom_constraint constraint, gfp_t gfp_mask,
|
|
|
+ int order, const nodemask_t *nodemask)
|
|
|
{
|
|
|
if (likely(!sysctl_panic_on_oom))
|
|
|
return;
|
|
@@ -575,25 +575,6 @@ static void check_panic_on_oom(enum oom_constraint constraint, gfp_t gfp_mask,
|
|
|
sysctl_panic_on_oom == 2 ? "compulsory" : "system-wide");
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_MEMCG
|
|
|
-void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask,
|
|
|
- int order)
|
|
|
-{
|
|
|
- /*
|
|
|
- * If current has a pending SIGKILL, then automatically select it. The
|
|
|
- * goal is to allow it to allocate so that it may quickly exit and free
|
|
|
- * its memory.
|
|
|
- */
|
|
|
- if (fatal_signal_pending(current)) {
|
|
|
- set_thread_flag(TIF_MEMDIE);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- check_panic_on_oom(CONSTRAINT_MEMCG, gfp_mask, order, NULL);
|
|
|
- __mem_cgroup_out_of_memory(memcg, gfp_mask, order);
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
static BLOCKING_NOTIFIER_HEAD(oom_notify_list);
|
|
|
|
|
|
int register_oom_notifier(struct notifier_block *nb)
|