diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index ba0ee0d34545..8da004bbc8db 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -1972,13 +1972,14 @@ static void update_avg(u64 *avg, u64 sample) | |||
1972 | *avg += diff >> 3; | 1972 | *avg += diff >> 3; |
1973 | } | 1973 | } |
1974 | 1974 | ||
1975 | static void enqueue_task(struct rq *rq, struct task_struct *p, int wakeup) | 1975 | static void |
1976 | enqueue_task(struct rq *rq, struct task_struct *p, int wakeup, bool head) | ||
1976 | { | 1977 | { |
1977 | if (wakeup) | 1978 | if (wakeup) |
1978 | p->se.start_runtime = p->se.sum_exec_runtime; | 1979 | p->se.start_runtime = p->se.sum_exec_runtime; |
1979 | 1980 | ||
1980 | sched_info_queued(p); | 1981 | sched_info_queued(p); |
1981 | p->sched_class->enqueue_task(rq, p, wakeup); | 1982 | p->sched_class->enqueue_task(rq, p, wakeup, head); |
1982 | p->se.on_rq = 1; | 1983 | p->se.on_rq = 1; |
1983 | } | 1984 | } |
1984 | 1985 | ||
@@ -2056,7 +2057,7 @@ static void activate_task(struct rq *rq, struct task_struct *p, int wakeup) | |||
2056 | if (task_contributes_to_load(p)) | 2057 | if (task_contributes_to_load(p)) |
2057 | rq->nr_uninterruptible--; | 2058 | rq->nr_uninterruptible--; |
2058 | 2059 | ||
2059 | enqueue_task(rq, p, wakeup); | 2060 | enqueue_task(rq, p, wakeup, false); |
2060 | inc_nr_running(rq); | 2061 | inc_nr_running(rq); |
2061 | } | 2062 | } |
2062 | 2063 | ||
@@ -6389,7 +6390,7 @@ void task_setprio(struct task_struct *p, int prio) | |||
6389 | if (running) | 6390 | if (running) |
6390 | p->sched_class->set_curr_task(rq); | 6391 | p->sched_class->set_curr_task(rq); |
6391 | if (on_rq) { | 6392 | if (on_rq) { |
6392 | enqueue_task(rq, p, 0); | 6393 | enqueue_task(rq, p, 0, false); |
6393 | 6394 | ||
6394 | check_class_changed(rq, p, prev_class, oldprio, running); | 6395 | check_class_changed(rq, p, prev_class, oldprio, running); |
6395 | } | 6396 | } |
@@ -6433,7 +6434,7 @@ void set_user_nice(struct task_struct *p, long nice) | |||
6433 | delta = p->prio - old_prio; | 6434 | delta = p->prio - old_prio; |
6434 | 6435 | ||
6435 | if (on_rq) { | 6436 | if (on_rq) { |
6436 | enqueue_task(rq, p, 0); | 6437 | enqueue_task(rq, p, 0, false); |
6437 | /* | 6438 | /* |
6438 | * If the task increased its priority or is running and | 6439 | * If the task increased its priority or is running and |
6439 | * lowered its priority, then reschedule its CPU: | 6440 | * lowered its priority, then reschedule its CPU: |
@@ -10522,7 +10523,7 @@ void sched_move_task(struct task_struct *tsk) | |||
10522 | if (unlikely(running)) | 10523 | if (unlikely(running)) |
10523 | tsk->sched_class->set_curr_task(rq); | 10524 | tsk->sched_class->set_curr_task(rq); |
10524 | if (on_rq) | 10525 | if (on_rq) |
10525 | enqueue_task(rq, tsk, 0); | 10526 | enqueue_task(rq, tsk, 0, false); |
10526 | 10527 | ||
10527 | task_rq_unlock(rq, &flags); | 10528 | task_rq_unlock(rq, &flags); |
10528 | } | 10529 | } |