sched: Replace use of entity_key()
Commit-ID: 2bd2d6f2dc952fc44fc52887de36e51896da96b9 Gitweb: http://git.kernel.org/tip/2bd2d6f2dc952fc44fc52887de36e51896da96b9 Author: Stephan Baerwolf <[email protected]> AuthorDate: Wed, 20 Jul 2011 14:46:59 +0200 Committer: Ingo Molnar <[email protected]> CommitDate: Thu, 21 Jul 2011 18:01:55 +0200
sched: Replace use of entity_key()
"entity_key()" is only used in "__enqueue_entity()" and its only function is to subtract a tasks vruntime by its groups minvruntime.
Before this patch a rbtree enqueue-decision is done by comparing two tasks in the style:
"if (entity_key(cfs_rq, se) < entity_key(cfs_rq, entry))"
which would be
"if (se->vruntime-cfs_rq->min_vruntime < entry->vruntime-cfs_rq->min_vruntime)"
or (if reducing cfs_rq->min_vruntime out)
"if (se->vruntime < entry->vruntime)"
which is
"if (entity_before(se, entry))"
So we do not need "entity_key()".
If "entity_before()" is inline we will also save one subtraction (only one, because "entity_key(cfs_rq, se)" was cached in "key")
Signed-off-by Stephan Baerwolf <[email protected]>
Signed-off-by Peter Zijlstra <[email protected]>
Signed-off-by Ingo Molnar <[email protected]>
--- kernel/sched_fair.c | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-)
kernel/sched_fair.c +1 -7
@@ -321,11 +321,6 @@ static inline int entity_before(struct sched_entity *a,return (s64)(a->vruntime - b->vruntime) <0 ; } -static inline s64 entity_key (struct cfs_rq *cfs_rq,struct sched_entity *se) -{ -return se->vruntime - cfs_rq->min_vruntime; -} -static void update_min_vruntime (struct cfs_rq *cfs_rq) {u64 vruntime = cfs_rq->min_vruntime;
@@ -359,7 +354,6 @@ static void __enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)struct rb_node **link = &cfs_rq->tasks_timeline.rb_node;struct rb_node *parent =NULL ;struct sched_entity *entry; -s64 key =entity_key (cfs_rq, se);int leftmost =1 ;/*
@@ -372,7 +366,7 @@ static void __enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)* We dont care about collisions. Nodes with * the same key stay together. */ -if (key <entity_key (cfs_rq, entry)) { +if (entity_before (se, entry)) { link = &parent->rb_left; }else { link = &parent->rb_right;