From: Jim Houston <jim.houston@attbi.com>
To: Mike Galbraith <efault@gmx.de>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] self tuning scheduler
Date: Tue, 11 Mar 2003 14:05:42 -0500 [thread overview]
Message-ID: <3E6E3386.FFFECD86@attbi.com> (raw)
In-Reply-To: 5.2.0.9.2.20030311095954.01f9a008@pop.gmx.net
Mike Galbraith wrote:
>
> Greetings,
>
> I took your patch out for a test-drive, and it appears to have starvation
> problems with irman's process load (dang thing seems to be HELL on schedulers).
>
> Irman starts a load (defaults to 9 tasks passing data in a pipe ring), and
> forks a child which pingpongs one character back and forth to the parent
> for 1000000 iterations, measuring response time for each iteration and
> computing statistics. With an iteration % 1000 printf() in the evaluation
> routine, I see it start off nice and fast, then begins to get starved for
> up to 30 seconds. It jerks around for a bit, then slows down to a ~stable
> 1 sec/iteration after approximately 300000 iterations. The whole test
> takes ~2minutes with 2.5.64-virgin. (I'm not patient enough to wait for
> the rest of the .5million iterations left on this burn before reporting:)
>
> It also shows a serious throughput loss with make -j30 bzImage on this box
> (I think you expect that though from what I read). With stock, it takes
> ~8m30s... this scheduler adds a full minute.
>
> The window wave test with a make -j5 bzImage running (fits easily in ram)
> is pretty ragged.
>
> Ending on a more positive note, vmstat output from the parallel build looks
> quite nice.
>
> -Mike
Hi Mike,
Thanks for taking the time to test my changes.
I found an irman rpm which is 2001 vintage and a broken link at:
http://people.redhat.com/bmatthews/irman/
So I'm not sure if I'm duplicating your test. If you could send me a
tar ball with the source for the irman you are running, it would help.
When I run the version of irman I have, it runs to completion, maybe a
bit slower than it should. I have some ideas why my scheduler does
badly on this test.
When I start a new process, I pick an initial priority for the new
process based on the average priority at which the system has been
running. From this I back calculate a run_avg value. If this guess
is bad, the new process may have an unfair advantage with respect to
its parent. I have been thinking of ways to fix this. One idea is
to use a shorter half-life value for processes which are recently started.
This test is an example where basing the child priority on the parent
makes sense. Perhaps I should use the parent priority if it is
lower than the rq->prio_avg value.
I guess it was wishful thinking when I titled this self tuning.
If your interested you could adjust the run_avg_halflife and/or
prio_avg_halflife to a smaller values.
It may also be a sampling problem where the period of the ping-pong
exchange is a fraction of the HZ tick, and one process is charged more
than its share of the cpu.
On the make -j30 kernel make, I intentionally reduce the timeslice
as the process priority increases. This should reduce jitter for
interactive processes. As more processes try to share the cpu they
all get higher priority and the smaller time slice. If there are
only 1-2 compute bound processes they would get 0.5 second time
slices.
I'm also curious about the hardware you are testing on.
Jim Houston - Concurrent Computer Corp.
next prev parent reply other threads:[~2003-03-11 18:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-11 0:30 [PATCH] self tuning scheduler Jim Houston
2003-03-11 9:46 ` Mike Galbraith
2003-03-11 19:05 ` Jim Houston [this message]
2003-03-11 20:09 ` Mike Galbraith
2003-03-11 19:17 ` Mike Galbraith
-- strict thread matches above, loose matches on Subject: below --
2003-03-11 23:04 Jim Houston
2003-03-12 4:51 ` Mike Galbraith
2003-03-12 5:19 ` 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=3E6E3386.FFFECD86@attbi.com \
--to=jim.houston@attbi.com \
--cc=efault@gmx.de \
--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