From 4facba50815c3101eb18d330ac4f5828c19e5064 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 19 Mar 2008 11:43:36 +0100 Subject: [PATCH] --- yaml --- r: 91085 b: refs/heads/master c: 112f53f5d700589de741dca67c77439e96ea94a7 h: refs/heads/master i: 91083: 8f964281cf81b5beced32a3962ad6434a05209fd v: v3 --- [refs] | 2 +- trunk/kernel/sched.c | 4 +++- trunk/kernel/sched_fair.c | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index d0a9682df9ef..0bbfce748dde 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cd8ba7cd9be0192348c2836cb6645d9b2cd2bfd2 +refs/heads/master: 112f53f5d700589de741dca67c77439e96ea94a7 diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 521b89b01480..070eefdd90f5 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -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 = @@ -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) diff --git a/trunk/kernel/sched_fair.c b/trunk/kernel/sched_fair.c index 290cf770b712..022e036f2c3e 100644 --- a/trunk/kernel/sched_fair.c +++ b/trunk/kernel/sched_fair.c @@ -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. */