sched: RT balancing: include current CPU
authorGregory Haskins <ghaskins@novell.com>
Fri, 25 Jan 2008 20:08:10 +0000 (21:08 +0100)
committerIngo Molnar <mingo@elte.hu>
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 ffd02720b58fa0de71d3634e90bafec2e134716c..95f36f61ae1dcb53be151b7fd1d1557845553313 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);