aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched.c1
-rw-r--r--kernel/sched_fair.c10
2 files changed, 4 insertions, 7 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 12bc367d9241..e8819bc6f462 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -386,7 +386,6 @@ struct cfs_rq {
386 386
387 u64 exec_clock; 387 u64 exec_clock;
388 u64 min_vruntime; 388 u64 min_vruntime;
389 u64 pair_start;
390 389
391 struct rb_root tasks_timeline; 390 struct rb_root tasks_timeline;
392 struct rb_node *rb_leftmost; 391 struct rb_node *rb_leftmost;
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 7af17e04a6db..ce514afd78ff 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -791,16 +791,14 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
791 se->prev_sum_exec_runtime = se->sum_exec_runtime; 791 se->prev_sum_exec_runtime = se->sum_exec_runtime;
792} 792}
793 793
794static int
795wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se);
796
794static struct sched_entity * 797static struct sched_entity *
795pick_next(struct cfs_rq *cfs_rq, struct sched_entity *se) 798pick_next(struct cfs_rq *cfs_rq, struct sched_entity *se)
796{ 799{
797 struct rq *rq = rq_of(cfs_rq); 800 if (!cfs_rq->next || wakeup_preempt_entity(cfs_rq->next, se) == 1)
798 u64 pair_slice = rq->clock - cfs_rq->pair_start;
799
800 if (!cfs_rq->next || pair_slice > sysctl_sched_min_granularity) {
801 cfs_rq->pair_start = rq->clock;
802 return se; 801 return se;
803 }
804 802
805 return cfs_rq->next; 803 return cfs_rq->next;
806} 804}