From: Tim Wright <timw@splhi.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Hubertus Franke <frankeh@us.ibm.com>,
Mike Kravetz <mkravetz@sequent.com>,
Fabio Riccardi <fabio@chromium.com>,
Linux Kernel List <linux-kernel@vger.kernel.org>
Subject: Re: a quest for a better scheduler
Date: Wed, 4 Apr 2001 15:16:32 -0700 [thread overview]
Message-ID: <20010404151632.A2144@kochanski> (raw)
In-Reply-To: <OFB30A8B18.2E3AD16C-ON85256A24.004BD696@pok.ibm.com> <Pine.LNX.4.30.0104041518540.5382-100000@elte.hu>
In-Reply-To: <Pine.LNX.4.30.0104041518540.5382-100000@elte.hu>; from mingo@elte.hu on Wed, Apr 04, 2001 at 03:23:34PM +0200
On Wed, Apr 04, 2001 at 03:23:34PM +0200, Ingo Molnar wrote:
>
> On Wed, 4 Apr 2001, Hubertus Franke wrote:
>
> > I understand the dilemma that the Linux scheduler is in, namely
> > satisfy the low end at all cost. [...]
>
> nope. The goal is to satisfy runnable processes in the range of NR_CPUS.
> You are playing word games by suggesting that the current behavior prefers
> 'low end'. 'thousands of runnable processes' is not 'high end' at all,
> it's 'broken end'. Thousands of runnable processes are the sign of a
> broken application design, and 'fixing' the scheduler to perform better in
> that case is just fixing the symptom. [changing the scheduler to perform
> better in such situations is possible too, but all solutions proposed so
> far had strings attached.]
>
Ingo, you continue to assert this without giving much evidence to back it up.
All the world is not a web server. If I'm running a large OLTP database with
thousands of clients, it's not at all unreasonable to expect periods where
several hundred (forget the thousands) want to be serviced by the database
engine. That sounds like hundreds of schedulable entities be they processes
or threads or whatever. This sort of load is regularly run on machine with
16-64 CPUs.
Now I will admit that it is conceivable that you can design an application that
finds out how many CPUs are available, creates threads to match that number
and tries to divvy up the work between them using some combination of polling
and asynchronous I/O etc. There are, however a number of problems with this
approach:
1) It assumes that this is the only workload on the machine. If not it quickly
becomes sub-optimal due to interactions between the workloads. This is a
problem that the kernel scheduler does not suffer from.
2) It requires *every* application designer to design an effective scheduler
into their application. I would submit that an effective scheduler is better
situated in the operating system.
3) It is not a familiar programming paradigm to many Unix/Linux/POSIX
programmers, so you have a sort of impedance mismatch going on.
Since the proposed scheduler changes being talked about here have been shown
to not hurt the "low end" and to dramatically improve the "high end", I fail
to understand the hostility to the changes. I can understand that you do not
feel that this is the correct way to architect an application, but if the
changes don't hurt you, why sabotage changes that also allow a different
method to work. There isn't one true way to do anything in computing.
Tim
--
Tim Wright - timw@splhi.com or timw@aracnet.com or twright@us.ibm.com
IBM Linux Technology Center, Beaverton, Oregon
Interested in Linux scalability ? Look at http://lse.sourceforge.net/
"Nobody ever said I was charming, they said "Rimmer, you're a git!"" RD VI
next prev parent reply other threads:[~2001-04-04 22:18 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-04 14:03 a quest for a better scheduler Hubertus Franke
2001-04-04 13:23 ` Ingo Molnar
2001-04-04 22:16 ` Tim Wright [this message]
2001-04-04 22:54 ` Christopher Smith
2001-04-05 22:38 ` Timothy D. Witham
2001-04-06 3:27 ` Christopher Smith
2001-04-06 18:06 ` Timothy D. Witham
2001-04-06 21:08 ` Michael Peddemors
2001-04-06 22:33 ` Nathan Straz
2001-04-04 15:12 ` Andrea Arcangeli
2001-04-04 15:49 ` Khalid Aziz
-- strict thread matches above, loose matches on Subject: below --
2001-04-18 14:50 Yoav Etsion
2001-04-06 13:15 Hubertus Franke
2001-04-05 23:53 Torrey Hoffman
2001-04-05 23:01 Hubertus Franke
2001-04-04 19:06 Hubertus Franke
2001-04-04 17:17 Hubertus Franke
2001-04-04 15:36 Hubertus Franke
2001-04-04 15:28 Hubertus Franke
2001-04-04 13:43 Hubertus Franke
2001-04-04 13:25 ` Ingo Molnar
2001-04-04 13:34 ` Ingo Molnar
2001-04-04 15:08 ` Andrea Arcangeli
2001-04-04 15:44 ` Khalid Aziz
2001-04-04 6:36 alad
2001-04-03 2:23 Fabio Riccardi
2001-04-03 8:55 ` Ingo Molnar
2001-04-03 19:13 ` Mike Kravetz
2001-04-03 18:47 ` Ingo Molnar
2001-04-03 22:43 ` Mike Kravetz
2001-04-04 0:18 ` Fabio Riccardi
2001-04-04 2:47 ` Mike Kravetz
2001-04-04 4:21 ` Fabio Riccardi
2001-04-04 17:27 ` Mike Kravetz
2001-04-04 6:53 ` Ingo Molnar
2001-04-04 16:12 ` Davide Libenzi
2001-04-04 6:28 ` Ingo Molnar
2001-04-03 12:31 ` Alan Cox
2001-04-04 0:33 ` Fabio Riccardi
2001-04-04 0:35 ` Alan Cox
2001-04-04 1:17 ` Fabio Riccardi
2001-04-04 1:50 ` Christopher Smith
2001-04-04 11:57 ` Ingo Molnar
2001-04-04 11:51 ` Ingo Molnar
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=20010404151632.A2144@kochanski \
--to=timw@splhi.com \
--cc=fabio@chromium.com \
--cc=frankeh@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mkravetz@sequent.com \
/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