From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758592AbZAQMT1 (ORCPT ); Sat, 17 Jan 2009 07:19:27 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755798AbZAQMTR (ORCPT ); Sat, 17 Jan 2009 07:19:17 -0500 Received: from mail.gmx.net ([213.165.64.20]:57113 "HELO mail.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1755563AbZAQMTQ (ORCPT ); Sat, 17 Jan 2009 07:19:16 -0500 X-Authenticated: #14349625 X-Provags-ID: V01U2FsdGVkX1+S5T0eCWWSISHps8TTAzXFbLpyfwPzesEJ72Eerw VCQXLKpO5x+oV+ Subject: Re: [git pull] scheduler fixes From: Mike Galbraith To: Peter Zijlstra Cc: Andrew Morton , Ingo Molnar , Linus Torvalds , LKML In-Reply-To: <1232193617.14073.67.camel@laptop> References: <20090111144305.GA7154@elte.hu> <20090114121521.197dfc5e.akpm@linux-foundation.org> <1231964647.14825.59.camel@laptop> <20090116204049.f4d6ef1c.akpm@linux-foundation.org> <1232173776.7073.21.camel@marge.simson.net> <1232186054.6813.48.camel@marge.simson.net> <1232186877.14073.59.camel@laptop> <1232188484.6813.85.camel@marge.simson.net> <1232193617.14073.67.camel@laptop> Content-Type: text/plain Date: Sat, 17 Jan 2009 13:19:12 +0100 Message-Id: <1232194752.6273.5.camel@marge.simson.net> Mime-Version: 1.0 X-Mailer: Evolution 2.22.1.1 Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-FuHaFi: 0.46 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 2009-01-17 at 13:00 +0100, Peter Zijlstra wrote: > 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) Ouch, that doesn't look like it will be nice at all for interactivity. (which btw was terrible with my hackery, even with booboos fixed) -Mike