Skip to content

Commit

Permalink
sched: old sleeper bonus
Browse files Browse the repository at this point in the history
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Peter Zijlstra authored and Ingo Molnar committed Apr 19, 2008
1 parent cd8ba7c commit 112f53f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
4 changes: 3 additions & 1 deletion kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@ enum {
SCHED_FEAT_SYNC_WAKEUPS = 32,
SCHED_FEAT_HRTICK = 64,
SCHED_FEAT_DOUBLE_TICK = 128,
SCHED_FEAT_NORMALIZED_SLEEPER = 256,
};

const_debug unsigned int sysctl_sched_features =
Expand All @@ -690,7 +691,8 @@ const_debug unsigned int sysctl_sched_features =
SCHED_FEAT_CACHE_HOT_BUDDY * 1 |
SCHED_FEAT_SYNC_WAKEUPS * 1 |
SCHED_FEAT_HRTICK * 1 |
SCHED_FEAT_DOUBLE_TICK * 0;
SCHED_FEAT_DOUBLE_TICK * 0 |
SCHED_FEAT_NORMALIZED_SLEEPER * 1;

#define sched_feat(x) (sysctl_sched_features & SCHED_FEAT_##x)

Expand Down
7 changes: 5 additions & 2 deletions kernel/sched_fair.c
Original file line number Diff line number Diff line change
Expand Up @@ -501,8 +501,11 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
if (!initial) {
/* sleeps upto a single latency don't count. */
if (sched_feat(NEW_FAIR_SLEEPERS)) {
vruntime -= calc_delta_fair(sysctl_sched_latency,
&cfs_rq->load);
if (sched_feat(NORMALIZED_SLEEPER))
vruntime -= calc_delta_fair(sysctl_sched_latency,
&cfs_rq->load);
else
vruntime -= sysctl_sched_latency;
}

/* ensure we never gain time by being placed backwards. */
Expand Down

0 comments on commit 112f53f

Please sign in to comment.