Skip to content

Commit

Permalink
sched: entity_key() fix
Browse files Browse the repository at this point in the history
entity_key() fix - we'd occasionally end up with a 0 vruntime
in the !initial case.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
  • Loading branch information
Ingo Molnar committed Oct 15, 2007
1 parent ddc9729 commit 8465e79
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions kernel/sched_fair.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 8465e79

Please sign in to comment.