lkml.org 
[lkml]   [2009]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [git pull] scheduler fixes
From
Date
On Sat, 2009-01-17 at 11:34 +0100, Mike Galbraith wrote:
> > Right, how about we flip the 'initial' case in place_entity() for !
> > nr_exclusive wakeups.
>
> Wouldn't that be more drastic than sleep denial?

Strictly speaking that DEBIT thing is valid for each wakeup, IIRC we
restricted it to clone() only because that was where we could actually
observe these latency spikes using a fork-bomb.

This reduces the latency hits to around 400ms, which is about right for
the given load.

---
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index f34cf42..d344605 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -671,7 +671,8 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
* little, place the new task so that it fits in the slot that
* stays open at the end.
*/
- if (initial && sched_feat(START_DEBIT))
+ if ((initial && sched_feat(START_DEBIT)) ||
+ (!initial && sched_feat(WAKER_DEBIT)))
vruntime += sched_vslice(cfs_rq, se);

if (!initial) {
diff --git a/kernel/sched_features.h b/kernel/sched_features.h
index 4569bfa..b5fddf0 100644
--- a/kernel/sched_features.h
+++ b/kernel/sched_features.h
@@ -1,4 +1,4 @@
-SCHED_FEAT(NEW_FAIR_SLEEPERS, 1)
+SCHED_FEAT(NEW_FAIR_SLEEPERS, 0)
SCHED_FEAT(NORMALIZED_SLEEPER, 0)
SCHED_FEAT(ADAPTIVE_GRAN, 1)
SCHED_FEAT(WAKEUP_PREEMPT, 1)
@@ -15,3 +15,4 @@ SCHED_FEAT(ASYM_EFF_LOAD, 1)
SCHED_FEAT(WAKEUP_OVERLAP, 0)
SCHED_FEAT(LAST_BUDDY, 1)
SCHED_FEAT(OWNER_SPIN, 1)
+SCHED_FEAT(WAKER_DEBIT, 1)



\
 
 \ /
  Last update: 2009-01-17 13:03    [W:0.103 / U:0.208 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site