Created
April 28, 2019 10:43
-
-
Save EJSohn/c7fdae06b677f5da49bf70630e892679 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* oom_badness - calculate a numeric value for how bad this task has been | |
* @p: task struct of which task we should calculate | |
* @p: current uptime in seconds | |
* | |
* The formula used is relatively simple and documented inline in the | |
* function. The main rationale is that we want to select a good task | |
* to kill when we run out of memory. | |
* | |
* Good in this context means that: | |
* 1) we lose the minimum amount of work done | |
* 2) we recover a large amount of memory | |
* 3) we don't kill anything innocent of eating tons of memory | |
* 4) we want to kill the minimum amount of processes (one) | |
* 5) we try to kill the process the user expects us to kill, this | |
* algorithm has been meticulously tuned to meet the principle | |
* of least surprise ... (be careful when you change it) | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment