sched/numa: Avoid some pointless iterations
authorJan Beulich <JBeulich@suse.com>
Mon, 9 Feb 2015 11:30:00 +0000 (12:30 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 18 Feb 2015 15:18:02 +0000 (16:18 +0100)
Commit 81907478c431 ("sched/fair: Avoid using uninitialized variable
in preferred_group_nid()") unconditionally initializes max_group with
NODE_MASK_NONE, this means that when !max_faults (max_group didn't get
set), we'll now continue the iteration with an empty mask.

Which in turn makes the actual body of the loop go away, so we'll just
iterate until completion; short circuit this by breaking out of the
loop as soon as this would happen.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/20150209113727.GS5029@twins.programming.kicks-ass.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/fair.c

index 28cbacae4e5161d0682356fbd3260fca27ff1bcc..ee595ef30470e8060efb24150380c5c69bb74f2d 100644 (file)
@@ -1774,6 +1774,8 @@ static int preferred_group_nid(struct task_struct *p, int nid)
                        }
                }
                /* Next round, evaluate the nodes within max_group. */
+               if (!max_faults)
+                       break;
                nodes = max_group;
        }
        return nid;