mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-18 10:34:24 +08:00
oom: deprecate oom_adj tunable
/proc/pid/oom_adj is now deprecated so that that it may eventually be removed. The target date for removal is August 2012. A warning will be printed to the kernel log if a task attempts to use this interface. Future warning will be suppressed until the kernel is rebooted to prevent spamming the kernel log. Signed-off-by: David Rientjes <rientjes@google.com> Cc: Nick Piggin <npiggin@suse.de> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Balbir Singh <balbir@in.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a63d83f427
commit
51b1bd2ace
@ -151,6 +151,31 @@ Who: Eric Biederman <ebiederm@xmission.com>
|
|||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
What: /proc/<pid>/oom_adj
|
||||||
|
When: August 2012
|
||||||
|
Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
|
||||||
|
badness heuristic used to determine which task to kill when the kernel
|
||||||
|
is out of memory.
|
||||||
|
|
||||||
|
The badness heuristic has since been rewritten since the introduction of
|
||||||
|
this tunable such that its meaning is deprecated. The value was
|
||||||
|
implemented as a bitshift on a score generated by the badness()
|
||||||
|
function that did not have any precise units of measure. With the
|
||||||
|
rewrite, the score is given as a proportion of available memory to the
|
||||||
|
task allocating pages, so using a bitshift which grows the score
|
||||||
|
exponentially is, thus, impossible to tune with fine granularity.
|
||||||
|
|
||||||
|
A much more powerful interface, /proc/<pid>/oom_score_adj, was
|
||||||
|
introduced with the oom killer rewrite that allows users to increase or
|
||||||
|
decrease the badness() score linearly. This interface will replace
|
||||||
|
/proc/<pid>/oom_adj.
|
||||||
|
|
||||||
|
A warning will be emitted to the kernel log if an application uses this
|
||||||
|
deprecated interface. After it is printed once, future warnings will be
|
||||||
|
suppressed until the kernel is rebooted.
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
What: remove EXPORT_SYMBOL(kernel_thread)
|
What: remove EXPORT_SYMBOL(kernel_thread)
|
||||||
When: August 2006
|
When: August 2006
|
||||||
Files: arch/*/kernel/*_ksyms.c
|
Files: arch/*/kernel/*_ksyms.c
|
||||||
|
@ -1285,6 +1285,9 @@ scaled linearly with /proc/<pid>/oom_score_adj.
|
|||||||
Writing to /proc/<pid>/oom_score_adj or /proc/<pid>/oom_adj will change the
|
Writing to /proc/<pid>/oom_score_adj or /proc/<pid>/oom_adj will change the
|
||||||
other with its scaled value.
|
other with its scaled value.
|
||||||
|
|
||||||
|
NOTICE: /proc/<pid>/oom_adj is deprecated and will be removed, please see
|
||||||
|
Documentation/feature-removal-schedule.txt.
|
||||||
|
|
||||||
Caveat: when a parent task is selected, the oom killer will sacrifice any first
|
Caveat: when a parent task is selected, the oom killer will sacrifice any first
|
||||||
generation children with seperate address spaces instead, if possible. This
|
generation children with seperate address spaces instead, if possible. This
|
||||||
avoids servers and important system daemons from being killed and loses the
|
avoids servers and important system daemons from being killed and loses the
|
||||||
|
@ -1037,6 +1037,14 @@ static ssize_t oom_adjust_write(struct file *file, const char __user *buf,
|
|||||||
return -EACCES;
|
return -EACCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warn that /proc/pid/oom_adj is deprecated, see
|
||||||
|
* Documentation/feature-removal-schedule.txt.
|
||||||
|
*/
|
||||||
|
printk_once(KERN_WARNING "%s (%d): /proc/%d/oom_adj is deprecated, "
|
||||||
|
"please use /proc/%d/oom_score_adj instead.\n",
|
||||||
|
current->comm, task_pid_nr(current),
|
||||||
|
task_pid_nr(task), task_pid_nr(task));
|
||||||
task->signal->oom_adj = oom_adjust;
|
task->signal->oom_adj = oom_adjust;
|
||||||
/*
|
/*
|
||||||
* Scale /proc/pid/oom_score_adj appropriately ensuring that a maximum
|
* Scale /proc/pid/oom_score_adj appropriately ensuring that a maximum
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
#define __INCLUDE_LINUX_OOM_H
|
#define __INCLUDE_LINUX_OOM_H
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* /proc/<pid>/oom_adj is deprecated, see
|
||||||
|
* Documentation/feature-removal-schedule.txt.
|
||||||
|
*
|
||||||
* /proc/<pid>/oom_adj set to -17 protects from the oom-killer
|
* /proc/<pid>/oom_adj set to -17 protects from the oom-killer
|
||||||
*/
|
*/
|
||||||
#define OOM_DISABLE (-17)
|
#define OOM_DISABLE (-17)
|
||||||
|
Loading…
Reference in New Issue
Block a user