diff options
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r-- | kernel/sched_rt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index bacb32039e95..d38a8a559aa5 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
@@ -558,6 +558,15 @@ static void schedule_tail_balance_rt(struct rq *rq) | |||
558 | } | 558 | } |
559 | } | 559 | } |
560 | 560 | ||
561 | |||
562 | static void wakeup_balance_rt(struct rq *rq, struct task_struct *p) | ||
563 | { | ||
564 | if (unlikely(rt_task(p)) && | ||
565 | !task_running(rq, p) && | ||
566 | (p->prio >= rq->curr->prio)) | ||
567 | push_rt_tasks(rq); | ||
568 | } | ||
569 | |||
561 | /* | 570 | /* |
562 | * Load-balancing iterator. Note: while the runqueue stays locked | 571 | * Load-balancing iterator. Note: while the runqueue stays locked |
563 | * during the whole iteration, the current task might be | 572 | * during the whole iteration, the current task might be |
@@ -665,6 +674,7 @@ move_one_task_rt(struct rq *this_rq, int this_cpu, struct rq *busiest, | |||
665 | #else /* CONFIG_SMP */ | 674 | #else /* CONFIG_SMP */ |
666 | # define schedule_tail_balance_rt(rq) do { } while (0) | 675 | # define schedule_tail_balance_rt(rq) do { } while (0) |
667 | # define schedule_balance_rt(rq, prev) do { } while (0) | 676 | # define schedule_balance_rt(rq, prev) do { } while (0) |
677 | # define wakeup_balance_rt(rq, p) do { } while (0) | ||
668 | #endif /* CONFIG_SMP */ | 678 | #endif /* CONFIG_SMP */ |
669 | 679 | ||
670 | static void task_tick_rt(struct rq *rq, struct task_struct *p) | 680 | static void task_tick_rt(struct rq *rq, struct task_struct *p) |