allow oom_adj of saintly processes

If the badness of a process is zero then oom_adj>0 has no effect.  This
patch makes sure that the oom_adj shift actually increases badness points
appropriately.

Signed-off-by: Joshua N. Pritikin <jpritikin@pobox.com>
Cc: Andrea Arcangeli <andrea@novell.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Joshua N Pritikin 2007-05-06 14:49:07 -07:00 committed by Linus Torvalds
parent 3d67f2d7c0
commit 9a82782f8f
1 changed files with 4 additions and 2 deletions

View File

@ -147,9 +147,11 @@ unsigned long badness(struct task_struct *p, unsigned long uptime)
* Adjust the score by oomkilladj.
*/
if (p->oomkilladj) {
if (p->oomkilladj > 0)
if (p->oomkilladj > 0) {
if (!points)
points = 1;
points <<= p->oomkilladj;
else
} else
points >>= -(p->oomkilladj);
}