diff options
Diffstat (limited to 'kernel/sched/deadline.c')
-rw-r--r-- | kernel/sched/deadline.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 039dde2b1dac..2dc2784b196c 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c | |||
@@ -1727,12 +1727,20 @@ static void start_hrtick_dl(struct rq *rq, struct task_struct *p) | |||
1727 | } | 1727 | } |
1728 | #endif | 1728 | #endif |
1729 | 1729 | ||
1730 | static inline void set_next_task(struct rq *rq, struct task_struct *p) | 1730 | static void set_next_task_dl(struct rq *rq, struct task_struct *p) |
1731 | { | 1731 | { |
1732 | p->se.exec_start = rq_clock_task(rq); | 1732 | p->se.exec_start = rq_clock_task(rq); |
1733 | 1733 | ||
1734 | /* You can't push away the running task */ | 1734 | /* You can't push away the running task */ |
1735 | dequeue_pushable_dl_task(rq, p); | 1735 | dequeue_pushable_dl_task(rq, p); |
1736 | |||
1737 | if (hrtick_enabled(rq)) | ||
1738 | start_hrtick_dl(rq, p); | ||
1739 | |||
1740 | if (rq->curr->sched_class != &dl_sched_class) | ||
1741 | update_dl_rq_load_avg(rq_clock_pelt(rq), rq, 0); | ||
1742 | |||
1743 | deadline_queue_push_tasks(rq); | ||
1736 | } | 1744 | } |
1737 | 1745 | ||
1738 | static struct sched_dl_entity *pick_next_dl_entity(struct rq *rq, | 1746 | static struct sched_dl_entity *pick_next_dl_entity(struct rq *rq, |
@@ -1791,15 +1799,7 @@ pick_next_task_dl(struct rq *rq, struct task_struct *prev, struct rq_flags *rf) | |||
1791 | 1799 | ||
1792 | p = dl_task_of(dl_se); | 1800 | p = dl_task_of(dl_se); |
1793 | 1801 | ||
1794 | set_next_task(rq, p); | 1802 | set_next_task_dl(rq, p); |
1795 | |||
1796 | if (hrtick_enabled(rq)) | ||
1797 | start_hrtick_dl(rq, p); | ||
1798 | |||
1799 | deadline_queue_push_tasks(rq); | ||
1800 | |||
1801 | if (rq->curr->sched_class != &dl_sched_class) | ||
1802 | update_dl_rq_load_avg(rq_clock_pelt(rq), rq, 0); | ||
1803 | 1803 | ||
1804 | return p; | 1804 | return p; |
1805 | } | 1805 | } |
@@ -1846,7 +1846,7 @@ static void task_fork_dl(struct task_struct *p) | |||
1846 | 1846 | ||
1847 | static void set_curr_task_dl(struct rq *rq) | 1847 | static void set_curr_task_dl(struct rq *rq) |
1848 | { | 1848 | { |
1849 | set_next_task(rq, rq->curr); | 1849 | set_next_task_dl(rq, rq->curr); |
1850 | } | 1850 | } |
1851 | 1851 | ||
1852 | #ifdef CONFIG_SMP | 1852 | #ifdef CONFIG_SMP |