sched: clean up min_vruntime use
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Mon, 15 Oct 2007 15:00:12 +0000 (17:00 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 15 Oct 2007 15:00:12 +0000 (17:00 +0200)
clean up min_vruntime use.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_fair.c

index fcd6900849b35ab9445c8cfbee59792943224a47..ec0569e59e24a7e2b21b38d26d2e64eb1e71ca75 100644 (file)
@@ -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)