From: Mike Galbraith <efault@gmx.de>
To: Al Boldi <a1426z@gawab.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: scheduler starvation resistance patches for 2.6.16
Date: Wed, 29 Mar 2006 07:56:14 +0200 [thread overview]
Message-ID: <1143611774.7535.30.camel@homer> (raw)
In-Reply-To: <200603282301.55314.a1426z@gawab.com>
On Tue, 2006-03-28 at 23:01 +0300, Al Boldi wrote:
> Mike Galbraith wrote:
> > On Tue, 2006-03-28 at 07:10 +0200, Mike Galbraith wrote:
> > > On Mon, 2006-03-27 at 21:36 +0300, Al Boldi wrote:
> > > > It's not bad. w/ credit_c1/2 set to 0 results in an improvement in
> > > > running the MESA demos "# gears & reflect & morph3d" .
> > >
> > > Hmm. That's unexpected.
> > >
> > > > But a simple "# while :; do :; done &" (10x) makes a "# ping 10.1 -A
> > > > -s8" choke.
> > >
> > > Ouch, so is that. But thanks, testcases are great. I'll look into it.
> >
> > OK, this has nothing to do with my patches. The same slowdown happens
> > with a stock kernel when running a few pure cpu hogs. I suspect it has
> > to do with softirqd, but am still investigating.
>
> I think so too.
(suspicion led to wild goose chase)
> I played with some numbers inside sched.c. Raising the MIN_TIMESLICE from 1
> to between 10-100 affects interactivity positively, although it does not
> fix it entirely.
After some fiddling with it, looks to me like it's just a combination of
EXPIRED_STARVING(rq) doing it's thing, which in turn causes (if you're
running kde at least) your terminal to not be able to keep up, which
makes it lose priority due to burning more cpu trying to catch up.
Try this. Using virgin 2.6.16, disable EXPIRED_STARVING(rq), and start
your ping -A without any cpu hogs. If you're running KDE, you'll notice
that the konsole priority where ping is running remains forever highly
interactive. Enable EXPIRED_STARVING(rq) and repeat. Just from the
scrolling, being bumped into the expired array will cause konsole to
lose priority because of increased cpu usage trying to catch up.
There is a price to be paid for starvation prevention. You can choose
when it's paid, and in what sized installments, but pay you will :-/
> It does look like there is an underlying problem (locking?) that may be
> worked-around by tuning the scheduler to some extent.
>
> Also, MAX_TIMESLICE = 800 seems a bit high. Can this be lowered?
The round-robin logic prevents this from being a problem.
-Mike
next prev parent reply other threads:[~2006-03-29 5:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-27 18:36 scheduler starvation resistance patches for 2.6.16 Al Boldi
2006-03-28 5:10 ` Mike Galbraith
2006-03-28 9:12 ` Mike Galbraith
2006-03-28 20:01 ` Al Boldi
2006-03-29 5:56 ` Mike Galbraith [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-03-27 4:35 Mike Galbraith
2006-03-28 4:14 ` Willy Tarreau
2006-03-28 4:56 ` Mike Galbraith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1143611774.7535.30.camel@homer \
--to=efault@gmx.de \
--cc=a1426z@gawab.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox