Bug 19382

Summary: oom_adj and oom_score are undocumented
Product: Documentation Reporter: landijk-user
Component: man-pagesAssignee: documentation_man-pages (documentation_man-pages)
Status: CLOSED DOCUMENTED    
Severity: normal CC: randy.dunlap
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 19332    

Description landijk-user 2010-09-30 18:34:16 UTC
There does not appear to be any kernel documentation on oom_adj and oom_score, which may be set for individual processes to tune the OOM killer.  I am not a kernel developer, but below is my suggestion for possible content.  It is based on (but not copied from) Red Hat's documentation at http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/s2-proc-pid.html.

--

Each process in the /proc tree has two nodes called "oom_adj" and "oom_score."  These are related to the operation of the "OOM killer," which is the kernel's tool for resolving situations in which memory has been overcommitted.  For more information about memory overcommitment, see the kernel documentation files vm/overcommit-accounting and sysctl/vm.txt.

The oom_score node contains a read-only value indicating the priority associated with the process should an overcommitted situation arise.  Lower priority means the process is less likely to be killed, and the lowest possible score is 0.

The oom_adj node is read-write, and its value is used in the computation of the oom_score.  Specifically, it is a value in the range -17 to +15, and it is interpreted as a bit shift in the last step of computing the oom_score.  Negative values reduce the score, and positive values increase the score.  The value -17 is treated specially; it always reduces the oom_score to 0.

--

I am not sure where the documentation should go.  Perhaps the OOM killer should have its own page to treat the above topics, as well as the badness() function.
Comment 1 Randy Dunlap 2010-09-30 18:43:13 UTC
Documentation/filesystems/proc.txt contains some info in these 2 sections:

  3.1	/proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - Adjust the oom-killer
								score
  3.2	/proc/<pid>/oom_score - Display current oom-killer score


Are these correct or do they need to be updated?  If they need to be
updated, please send patches against this file.
Comment 2 landijk-user 2010-09-30 18:57:21 UTC
You are right.  I have no idea how I missed it.