From 13cf3c9e527cb89ef7b3b84aed73b68490d46974 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Mon, 15 Oct 2007 17:00:11 +0200 Subject: [PATCH] --- yaml --- r: 69069 b: refs/heads/master c: 8465e792e82c567b80358e38732164b770ed4b7f h: refs/heads/master i: 69067: 19163f015ad1fe4fb1cef1033d5d31102428aab2 v: v3 --- [refs] | 2 +- trunk/kernel/sched_fair.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index ad727289e4ab..a652ef08d2f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ddc972975091ba5f839bf24d0f9ef54fe90ee741 +refs/heads/master: 8465e792e82c567b80358e38732164b770ed4b7f diff --git a/trunk/kernel/sched_fair.c b/trunk/kernel/sched_fair.c index 8ea4c9b3e411..926491f7f803 100644 --- a/trunk/kernel/sched_fair.c +++ b/trunk/kernel/sched_fair.c @@ -479,13 +479,16 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) if (initial && sched_feat(START_DEBIT)) vruntime += __sched_vslice(cfs_rq->nr_running + 1); - if (!initial && sched_feat(NEW_FAIR_SLEEPERS)) { - s64 latency = cfs_rq->min_vruntime - se->last_min_vruntime; - if (latency < 0 || !cfs_rq->nr_running) - latency = 0; - else - latency = min_t(s64, latency, sysctl_sched_latency); - vruntime -= latency; + if (!initial) { + if (sched_feat(NEW_FAIR_SLEEPERS)) { + s64 latency = cfs_rq->min_vruntime - se->last_min_vruntime; + if (latency < 0 || !cfs_rq->nr_running) + latency = 0; + else + latency = min_t(s64, latency, sysctl_sched_latency); + vruntime -= latency; + } + vruntime = max(vruntime, se->vruntime); } se->vruntime = vruntime;