From 416797303333b1d2a2e9ebd08ab80ecd5f20718c Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 24 Oct 2008 11:06:16 +0200 Subject: [PATCH] --- yaml --- r: 117962 b: refs/heads/master c: 3f3a490480d8ab96e0fe30a41f80f14e6a0c579d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/sched.c | 1 - trunk/kernel/sched_fair.c | 10 ++++------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 41c03ec6292c..c0fd5e97d023 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 464b75273f64be7c81fee975bd6ca9593df3427b +refs/heads/master: 3f3a490480d8ab96e0fe30a41f80f14e6a0c579d diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 12bc367d9241..e8819bc6f462 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -386,7 +386,6 @@ struct cfs_rq { u64 exec_clock; u64 min_vruntime; - u64 pair_start; struct rb_root tasks_timeline; struct rb_node *rb_leftmost; diff --git a/trunk/kernel/sched_fair.c b/trunk/kernel/sched_fair.c index 7af17e04a6db..ce514afd78ff 100644 --- a/trunk/kernel/sched_fair.c +++ b/trunk/kernel/sched_fair.c @@ -791,16 +791,14 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se) se->prev_sum_exec_runtime = se->sum_exec_runtime; } +static int +wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se); + static struct sched_entity * pick_next(struct cfs_rq *cfs_rq, struct sched_entity *se) { - struct rq *rq = rq_of(cfs_rq); - u64 pair_slice = rq->clock - cfs_rq->pair_start; - - if (!cfs_rq->next || pair_slice > sysctl_sched_min_granularity) { - cfs_rq->pair_start = rq->clock; + if (!cfs_rq->next || wakeup_preempt_entity(cfs_rq->next, se) == 1) return se; - } return cfs_rq->next; }