|
@@ -1856,13 +1856,14 @@ static void update_avg(u64 *avg, u64 sample)
|
|
|
*avg += diff >> 3;
|
|
|
}
|
|
|
|
|
|
-static void enqueue_task(struct rq *rq, struct task_struct *p, int wakeup)
|
|
|
+static void
|
|
|
+enqueue_task(struct rq *rq, struct task_struct *p, int wakeup, bool head)
|
|
|
{
|
|
|
if (wakeup)
|
|
|
p->se.start_runtime = p->se.sum_exec_runtime;
|
|
|
|
|
|
sched_info_queued(p);
|
|
|
- p->sched_class->enqueue_task(rq, p, wakeup);
|
|
|
+ p->sched_class->enqueue_task(rq, p, wakeup, head);
|
|
|
p->se.on_rq = 1;
|
|
|
}
|
|
|
|
|
@@ -1892,7 +1893,7 @@ static void activate_task(struct rq *rq, struct task_struct *p, int wakeup)
|
|
|
if (task_contributes_to_load(p))
|
|
|
rq->nr_uninterruptible--;
|
|
|
|
|
|
- enqueue_task(rq, p, wakeup);
|
|
|
+ enqueue_task(rq, p, wakeup, false);
|
|
|
inc_nr_running(rq);
|
|
|
}
|
|
|
|
|
@@ -4236,7 +4237,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
|
|
|
if (running)
|
|
|
p->sched_class->set_curr_task(rq);
|
|
|
if (on_rq) {
|
|
|
- enqueue_task(rq, p, 0);
|
|
|
+ enqueue_task(rq, p, 0, false);
|
|
|
|
|
|
check_class_changed(rq, p, prev_class, oldprio, running);
|
|
|
}
|
|
@@ -4280,7 +4281,7 @@ void set_user_nice(struct task_struct *p, long nice)
|
|
|
delta = p->prio - old_prio;
|
|
|
|
|
|
if (on_rq) {
|
|
|
- enqueue_task(rq, p, 0);
|
|
|
+ enqueue_task(rq, p, 0, false);
|
|
|
/*
|
|
|
* If the task increased its priority or is running and
|
|
|
* lowered its priority, then reschedule its CPU:
|
|
@@ -8230,7 +8231,7 @@ void sched_move_task(struct task_struct *tsk)
|
|
|
if (unlikely(running))
|
|
|
tsk->sched_class->set_curr_task(rq);
|
|
|
if (on_rq)
|
|
|
- enqueue_task(rq, tsk, 0);
|
|
|
+ enqueue_task(rq, tsk, 0, false);
|
|
|
|
|
|
task_rq_unlock(rq, &flags);
|
|
|
}
|