summaryrefslogtreecommitdiffstats
path: root/kernel/sched
diff options
context:
space:
mode:
authorJan Beulich <JBeulich@suse.com>2015-02-09 12:30:00 +0100
committerIngo Molnar <mingo@kernel.org>2015-02-18 16:18:02 +0100
commit890a5409f9d0c84d75a1e16eebdfe91d8a57ef1e (patch)
tree0ef06064cca56ca0493ee395db0b0a8fe8a294f7 /kernel/sched
parent095bebf61a460ad7f6a45bb17ddbf3a9df2b4397 (diff)
downloadlinux-stable-890a5409f9d0c84d75a1e16eebdfe91d8a57ef1e.tar.gz
linux-stable-890a5409f9d0c84d75a1e16eebdfe91d8a57ef1e.tar.bz2
linux-stable-890a5409f9d0c84d75a1e16eebdfe91d8a57ef1e.zip
sched/numa: Avoid some pointless iterations
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>
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/fair.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 28cbacae4e51..ee595ef30470 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -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;