diff options
Diffstat (limited to 'kernel/sched_rt.c')
| -rw-r--r-- | kernel/sched_rt.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index c2730a5a4f05..060e87b0cb1c 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
| @@ -1098,11 +1098,14 @@ static void post_schedule_rt(struct rq *rq) | |||
| 1098 | } | 1098 | } |
| 1099 | } | 1099 | } |
| 1100 | 1100 | ||
| 1101 | 1101 | /* | |
| 1102 | * If we are not running and we are not going to reschedule soon, we should | ||
| 1103 | * try to push tasks away now | ||
| 1104 | */ | ||
| 1102 | static void task_wake_up_rt(struct rq *rq, struct task_struct *p) | 1105 | static void task_wake_up_rt(struct rq *rq, struct task_struct *p) |
| 1103 | { | 1106 | { |
| 1104 | if (!task_running(rq, p) && | 1107 | if (!task_running(rq, p) && |
| 1105 | (p->prio >= rq->rt.highest_prio) && | 1108 | !test_tsk_need_resched(rq->curr) && |
| 1106 | rq->rt.overloaded) | 1109 | rq->rt.overloaded) |
| 1107 | push_rt_tasks(rq); | 1110 | push_rt_tasks(rq); |
| 1108 | } | 1111 | } |
| @@ -1309,7 +1312,7 @@ static void set_curr_task_rt(struct rq *rq) | |||
| 1309 | p->se.exec_start = rq->clock; | 1312 | p->se.exec_start = rq->clock; |
| 1310 | } | 1313 | } |
| 1311 | 1314 | ||
| 1312 | const struct sched_class rt_sched_class = { | 1315 | static const struct sched_class rt_sched_class = { |
| 1313 | .next = &fair_sched_class, | 1316 | .next = &fair_sched_class, |
| 1314 | .enqueue_task = enqueue_task_rt, | 1317 | .enqueue_task = enqueue_task_rt, |
| 1315 | .dequeue_task = dequeue_task_rt, | 1318 | .dequeue_task = dequeue_task_rt, |
