sched: RT balancing: include current CPU
Gregory Haskins [Fri, 25 Jan 2008 20:08:10 +0000 (21:08 +0100)]
It doesn't hurt if we allow the current CPU to be included in the
search.  We will just simply skip it later if the current CPU turns out
to be the lowest.

We will use this later in the series

Signed-off-by: Gregory Haskins <ghaskins@novell.com>
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

kernel/sched_rt.c

index ffd0272..95f36f6 100644 (file)
@@ -277,9 +277,6 @@ static int find_lowest_rq(struct task_struct *task)
        for_each_cpu_mask(cpu, *cpu_mask) {
                struct rq *rq = cpu_rq(cpu);
 
-               if (cpu == rq->cpu)
-                       continue;
-
                /* We look for lowest RT prio or non-rt CPU */
                if (rq->rt.highest_prio >= MAX_RT_PRIO) {
                        lowest_rq = rq;
@@ -307,7 +304,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task,
        for (tries = 0; tries < RT_MAX_TRIES; tries++) {
                cpu = find_lowest_rq(task);
 
-               if (cpu == -1)
+               if ((cpu == -1) || (cpu == rq->cpu))
                        break;
 
                lowest_rq = cpu_rq(cpu);