diff options
-rw-r--r-- | kernel/sched/fair.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 051903f33eec..28ccf502c63c 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -6713,7 +6713,6 @@ static int idle_balance(struct rq *this_rq) | |||
6713 | if (sd->flags & SD_BALANCE_NEWIDLE) { | 6713 | if (sd->flags & SD_BALANCE_NEWIDLE) { |
6714 | t0 = sched_clock_cpu(this_cpu); | 6714 | t0 = sched_clock_cpu(this_cpu); |
6715 | 6715 | ||
6716 | /* If we've pulled tasks over stop searching: */ | ||
6717 | pulled_task = load_balance(this_cpu, this_rq, | 6716 | pulled_task = load_balance(this_cpu, this_rq, |
6718 | sd, CPU_NEWLY_IDLE, | 6717 | sd, CPU_NEWLY_IDLE, |
6719 | &continue_balancing); | 6718 | &continue_balancing); |
@@ -6728,7 +6727,12 @@ static int idle_balance(struct rq *this_rq) | |||
6728 | interval = msecs_to_jiffies(sd->balance_interval); | 6727 | interval = msecs_to_jiffies(sd->balance_interval); |
6729 | if (time_after(next_balance, sd->last_balance + interval)) | 6728 | if (time_after(next_balance, sd->last_balance + interval)) |
6730 | next_balance = sd->last_balance + interval; | 6729 | next_balance = sd->last_balance + interval; |
6731 | if (pulled_task) | 6730 | |
6731 | /* | ||
6732 | * Stop searching for tasks to pull if there are | ||
6733 | * now runnable tasks on this rq. | ||
6734 | */ | ||
6735 | if (pulled_task || this_rq->nr_running > 0) | ||
6732 | break; | 6736 | break; |
6733 | } | 6737 | } |
6734 | rcu_read_unlock(); | 6738 | rcu_read_unlock(); |