allow oom_adj of saintly processes
authorJoshua N Pritikin <jpritikin@pobox.com>
Sun, 6 May 2007 21:49:07 +0000 (14:49 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 7 May 2007 19:12:51 +0000 (12:12 -0700)
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>
mm/oom_kill.c

index 3791edfffeebe9595f54ce7d04fe424832aa6af5..a35e7a8ebd7ed8ddbc5545a598796766889f0174 100644 (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);
        }