diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2007-10-15 17:00:12 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2007-10-15 17:00:12 +0200 |
commit | b0ffd246ea947a037746e725bd461bb7e809a4b3 (patch) | |
tree | 62ec34bb1fbb98be646084b74732ec9209e5f39f /kernel/sched_fair.c | |
parent | sched: group scheduler SMP migration fix (diff) | |
download | linux-b0ffd246ea947a037746e725bd461bb7e809a4b3.tar.xz linux-b0ffd246ea947a037746e725bd461bb7e809a4b3.zip |
sched: clean up min_vruntime use
clean up min_vruntime use.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to '')
-rw-r--r-- | kernel/sched_fair.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index fcd6900849b3..ec0569e59e24 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -124,6 +124,16 @@ max_vruntime(u64 min_vruntime, u64 vruntime) return min_vruntime; } +static inline u64 +min_vruntime(u64 min_vruntime, u64 vruntime) +{ + s64 delta = (s64)(vruntime - min_vruntime); + if (delta < 0) + min_vruntime = vruntime; + + return min_vruntime; +} + static inline s64 entity_key(struct cfs_rq *cfs_rq, struct sched_entity *se) { @@ -251,7 +261,7 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr, unsigned long delta_exec) { unsigned long delta_exec_weighted; - u64 next_vruntime, min_vruntime; + u64 vruntime; schedstat_set(curr->exec_max, max((u64)delta_exec, curr->exec_max)); @@ -269,19 +279,13 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr, * value tracking the leftmost vruntime in the tree. */ if (first_fair(cfs_rq)) { - next_vruntime = __pick_next_entity(cfs_rq)->vruntime; - - /* min_vruntime() := !max_vruntime() */ - min_vruntime = max_vruntime(curr->vruntime, next_vruntime); - if (min_vruntime == next_vruntime) - min_vruntime = curr->vruntime; - else - min_vruntime = next_vruntime; + vruntime = min_vruntime(curr->vruntime, + __pick_next_entity(cfs_rq)->vruntime); } else - min_vruntime = curr->vruntime; + vruntime = curr->vruntime; cfs_rq->min_vruntime = - max_vruntime(cfs_rq->min_vruntime, min_vruntime); + max_vruntime(cfs_rq->min_vruntime, vruntime); } static void update_curr(struct cfs_rq *cfs_rq) |