scheduler fixes
Linus,
Please pull the latest sched-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-urgent-for-linus
# HEAD: 13b5ab02ae118fc8dfdc2b8597688ec4a11d5b53 sched/rt, sched/dl: Don't push if task's scheduling class was changed
A UP kernel cpufreq fix and a rt/dl scheduler corner case fix.
Thanks,
Ingo
------------------>
Rafael J. Wysocki (1):
sched/fair: Fix !CONFIG_SMP kernel cpufreq governor breakage
Xunlei Pang (1):
sched/rt, sched/dl: Don't push if task's scheduling class was changed
kernel/sched/deadline.c | 1 + kernel/sched/fair.c | 9 ++++++++- kernel/sched/rt.c | 1 + 3 files changed, 10 insertions(+), 1 deletion(-)
kernel/sched/deadline.c +1 -0
@@ -1394,6 +1394,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq) !cpumask_test_cpu(later_rq->cpu, &task->cpus_allowed) || task_running(rq, task) || + !dl_task(task) || !task_on_rq_queued(task))) {double_unlock_balance (rq, later_rq); later_rq =NULL ;
kernel/sched/fair.c +8 -1
@@ -3030,7 +3030,14 @@ static int idle_balance(struct rq *this_rq);#else /* CONFIG_SMP */ -static inline void update_load_avg (struct sched_entity *se,int update_tg) {} +static inline void update_load_avg (struct sched_entity *se,int not_used) +{ +struct cfs_rq *cfs_rq =cfs_rq_of (se); +struct rq *rq =rq_of (cfs_rq); + +cpufreq_trigger_update (rq_clock (rq)); +} +static inline void enqueue_entity_load_avg (struct cfs_rq *cfs_rq,struct sched_entity *se) {} static inline void
kernel/sched/rt.c +1 -0
@@ -1729,6 +1729,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) !cpumask_test_cpu(lowest_rq->cpu, tsk_cpus_allowed(task)) || task_running(rq, task) || + !rt_task(task) || !task_on_rq_queued(task))) {double_unlock_balance (rq, lowest_rq);