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.
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.
You are right. I have no idea how I missed it.