diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-05-05 17:56:17 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-05-05 17:56:17 -0400 |
commit | a992241de614dd2b7c97a9ba64e28c0e563f19bf (patch) | |
tree | a76f646188c23aad856b43ffc841a0ec08613398 /kernel/sched_fair.c | |
parent | 5717922a1b8cc477f45a0f4f11fe619392ba7133 (diff) |
sched: fix normalized sleeper
Normalized sleeper uses calc_delta*() which requires that the rq load is
already updated, so move account_entity_enqueue() before place_entity()
Tested-by: Frans Pop <elendil@planet.nl>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 89fa32b4edf2..1295ddc5656b 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -682,6 +682,7 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int wakeup) | |||
682 | * Update run-time statistics of the 'current'. | 682 | * Update run-time statistics of the 'current'. |
683 | */ | 683 | */ |
684 | update_curr(cfs_rq); | 684 | update_curr(cfs_rq); |
685 | account_entity_enqueue(cfs_rq, se); | ||
685 | 686 | ||
686 | if (wakeup) { | 687 | if (wakeup) { |
687 | place_entity(cfs_rq, se, 0); | 688 | place_entity(cfs_rq, se, 0); |
@@ -692,7 +693,6 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int wakeup) | |||
692 | check_spread(cfs_rq, se); | 693 | check_spread(cfs_rq, se); |
693 | if (se != cfs_rq->curr) | 694 | if (se != cfs_rq->curr) |
694 | __enqueue_entity(cfs_rq, se); | 695 | __enqueue_entity(cfs_rq, se); |
695 | account_entity_enqueue(cfs_rq, se); | ||
696 | } | 696 | } |
697 | 697 | ||
698 | static void update_avg(u64 *avg, u64 sample) | 698 | static void update_avg(u64 *avg, u64 sample) |