From: Linus Torvalds <torvalds@linux-foundation.org>
To: Nick Piggin <npiggin@suse.de>
Cc: Juliusz Chroboczek <jch@pps.jussieu.fr>,
Con Kolivas <kernel@kolivas.org>, Ingo Molnar <mingo@elte.hu>,
ck list <ck@vds.kolivas.org>, Bill Davidsen <davidsen@tmr.com>,
Willy Tarreau <w@1wt.eu>,
William Lee Irwin III <wli@holomorphy.com>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Mike Galbraith <efault@gmx.de>,
Arjan van de Ven <arjan@infradead.org>,
Peter Williams <pwil3058@bigpond.net.au>,
Thomas Gleixner <tglx@linutronix.de>,
caglar@pardus.org.tr, Gene Heskett <gene.heskett@gmail.com>
Subject: Re: [REPORT] cfs-v4 vs sd-0.44
Date: Mon, 23 Apr 2007 08:56:55 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.0.98.0704230844410.9964@woody.linux-foundation.org> (raw)
In-Reply-To: <20070423013429.GB25162@wotan.suse.de>
On Mon, 23 Apr 2007, Nick Piggin wrote:
> > If you have a single client, the X server is *not* more important than the
> > client, and indeed, renicing the X server causes bad patterns: just
> > because the client sends a request does not mean that the X server should
> > immediately be given the CPU as being "more important".
>
> If the client is doing some processing, and the user moves the mouse, it
> feels much more interactive if the pointer moves rather than waits for
> the client to finish processing.
.. yes. However, that should be automatically true if the X process just
has "enough CPU time" to merit being scheduled to.
Which it normally should always have, exactly because it's an
"interactive" process (regardless of how the scheduler is done - any
scheduler should always give sleepers good latency. The current one
obviously does it by giving interactivity-bonuses, CFS does it by trying
to be fair in giving out CPU time).
The problem tends to be the following scenario:
- the X server is very CPU-busy, because it has lots of clients
connecting to it, and it's not getting any "bonus" for doing work for
those clients (ie it uses up its time-slice and thus becomes "less
important" than other processes, since it's already gotten its "fair"
slice of CPU - never mind that it was really unfair to not give it
more)
- there is some process that is *not* dependent on X, that can (and does)
run, because X has spent its CPU time serving others.
but the point I'm trying to make is that X shouldn't get more CPU-time
because it's "more important" (it's not: and as noted earlier, thinking
that it's more important skews the problem and makes for too *much*
scheduling). X should get more CPU time simply because it should get it's
"fair CPU share" relative to the *sum* of the clients, not relative to any
client individually.
Once you actually do give the X server "fair share" of the CPU, I'm sure
that you can still get into bad situations (trivial example: make clients
that on purpose do X requests that are expensive for the server, but are
cheap to generate). But it's likely not going to be an issue in practice
any more.
Scheduling is not something you can do "perfectly". There's no point in
even trying. To do "perfect" scheduling, you'd have to have ESP and know
exactly what the user expects and know the future too. What you should aim
for is the "obvious cases".
And I don't think anybody really disputes the fact that a process that
does work for other processes "obviously" should get the CPU time skewed
towards it (and away from the clients - not from non-clients!). I think
the only real issue is that nobody really knows how to do it well (or at
all).
I think the "schedule by user" would be reasonable in practice - not
perfect by any means, but it *does* fall into the same class of issues:
users are not in general "more important" than other users, but they
should be treated fairly across the user, not on a per-process basis.
Linus
next prev parent reply other threads:[~2007-04-23 15:58 UTC|newest]
Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-20 14:04 [patch] CFS scheduler, v4 Ingo Molnar
2007-04-20 21:37 ` Gene Heskett
2007-04-21 20:47 ` S.Çağlar Onur
2007-04-22 1:22 ` Gene Heskett
2007-04-20 21:39 ` mdew .
2007-04-21 6:47 ` Ingo Molnar
2007-04-21 7:55 ` [patch] CFS scheduler, v4, for v2.6.20.7 Ingo Molnar
2007-04-21 12:12 ` [REPORT] cfs-v4 vs sd-0.44 Willy Tarreau
2007-04-21 12:40 ` Con Kolivas
2007-04-21 13:02 ` Willy Tarreau
2007-04-21 15:46 ` Ingo Molnar
2007-04-21 16:18 ` Willy Tarreau
2007-04-21 16:34 ` Linus Torvalds
2007-04-21 16:42 ` William Lee Irwin III
2007-04-21 18:55 ` Kyle Moffett
2007-04-21 19:49 ` Ulrich Drepper
2007-04-21 23:17 ` William Lee Irwin III
2007-04-21 23:35 ` Linus Torvalds
2007-04-22 1:46 ` Ulrich Drepper
2007-04-22 7:02 ` William Lee Irwin III
2007-04-22 7:17 ` Ulrich Drepper
2007-04-22 8:48 ` William Lee Irwin III
2007-04-22 16:16 ` Ulrich Drepper
2007-04-23 0:07 ` Rusty Russell
2007-04-21 16:53 ` Willy Tarreau
2007-04-21 16:53 ` Ingo Molnar
2007-04-21 16:57 ` Willy Tarreau
2007-04-21 18:09 ` Ulrich Drepper
2007-04-21 17:03 ` Geert Bosch
2007-04-21 15:55 ` Con Kolivas
2007-04-21 16:00 ` Ingo Molnar
2007-04-21 16:12 ` Willy Tarreau
2007-04-21 16:39 ` William Lee Irwin III
2007-04-21 17:15 ` Jan Engelhardt
2007-04-21 19:00 ` Ingo Molnar
2007-04-22 13:18 ` Mark Lord
2007-04-22 13:27 ` Ingo Molnar
2007-04-22 13:30 ` Mark Lord
2007-04-25 8:16 ` Pavel Machek
2007-04-25 8:22 ` Ingo Molnar
2007-04-25 10:19 ` Alan Cox
2007-04-21 22:54 ` Denis Vlasenko
2007-04-22 0:08 ` Con Kolivas
2007-04-22 4:58 ` Mike Galbraith
2007-04-21 23:59 ` Con Kolivas
2007-04-22 13:04 ` Juliusz Chroboczek
2007-04-22 23:24 ` Linus Torvalds
2007-04-23 1:34 ` Nick Piggin
2007-04-23 15:56 ` Linus Torvalds [this message]
2007-04-23 19:11 ` Ingo Molnar
2007-04-23 19:52 ` Linus Torvalds
2007-04-23 20:33 ` Ingo Molnar
2007-04-23 20:44 ` Ingo Molnar
2007-04-23 21:03 ` Ingo Molnar
2007-04-23 21:53 ` Guillaume Chazarain
2007-04-24 7:04 ` Rogan Dawes
2007-04-24 7:31 ` Ingo Molnar
2007-04-24 8:25 ` Rogan Dawes
2007-04-24 15:03 ` Chris Friesen
2007-04-24 15:07 ` Rogan Dawes
2007-04-24 15:15 ` Chris Friesen
2007-04-24 23:55 ` Peter Williams
2007-04-25 9:29 ` Ingo Molnar
2007-04-23 22:48 ` Jeremy Fitzhardinge
2007-04-24 0:59 ` Li, Tong N
2007-04-24 1:57 ` Bill Huey
2007-04-24 18:01 ` Li, Tong N
2007-04-24 21:27 ` William Lee Irwin III
2007-04-24 22:18 ` Bernd Eckenfels
2007-04-25 1:22 ` Li, Tong N
2007-04-25 6:05 ` William Lee Irwin III
2007-04-25 9:44 ` Ingo Molnar
2007-04-25 11:58 ` William Lee Irwin III
2007-04-25 20:13 ` Willy Tarreau
2007-04-26 17:57 ` Li, Tong N
2007-04-26 19:18 ` Willy Tarreau
2007-04-28 15:12 ` Bernd Eckenfels
2007-04-26 23:26 ` William Lee Irwin III
2007-04-24 3:46 ` Peter Williams
2007-04-24 4:52 ` Arjan van de Ven
2007-04-24 6:21 ` Peter Williams
2007-04-24 6:36 ` Ingo Molnar
2007-04-24 7:00 ` Gene Heskett
2007-04-24 7:08 ` Ingo Molnar
2007-04-24 6:45 ` David Lang
2007-04-24 7:24 ` Ingo Molnar
2007-04-24 14:38 ` Gene Heskett
2007-04-24 17:44 ` Willy Tarreau
2007-04-25 0:30 ` Gene Heskett
2007-04-25 0:32 ` Gene Heskett
2007-04-24 7:12 ` Gene Heskett
2007-04-24 7:14 ` Ingo Molnar
2007-04-24 14:36 ` Gene Heskett
2007-04-24 7:25 ` Ingo Molnar
2007-04-24 14:39 ` Gene Heskett
2007-04-24 14:42 ` Gene Heskett
2007-04-24 7:33 ` Ingo Molnar
2007-04-26 0:51 ` SD renice recommendation was: " Con Kolivas
2007-04-24 15:08 ` Ray Lee
2007-04-25 9:32 ` Ingo Molnar
2007-04-23 20:05 ` Willy Tarreau
2007-04-24 21:05 ` 'Scheduler Economy' prototype patch for CFS Ingo Molnar
2007-04-23 2:42 ` [report] renicing X, cfs-v5 vs sd-0.46 Ingo Molnar
2007-04-23 15:09 ` Linus Torvalds
2007-04-23 17:19 ` Gene Heskett
2007-04-23 17:19 ` Gene Heskett
2007-04-23 19:48 ` Ingo Molnar
2007-04-23 20:56 ` Michael K. Edwards
2007-04-22 13:23 ` [REPORT] cfs-v4 vs sd-0.44 Mark Lord
2007-04-21 18:17 ` Gene Heskett
2007-04-22 1:26 ` Con Kolivas
2007-04-22 2:07 ` Gene Heskett
2007-04-22 8:07 ` William Lee Irwin III
2007-04-22 11:11 ` Gene Heskett
2007-04-22 1:51 ` Con Kolivas
2007-04-21 20:35 ` [patch] CFS scheduler, v4 S.Çağlar Onur
2007-04-22 8:30 ` Michael Gerdau
2007-04-23 22:47 ` Ingo Molnar
2007-04-23 1:12 ` [patch] CFS scheduler, -v5 Ingo Molnar
2007-04-23 1:25 ` Nick Piggin
2007-04-23 2:39 ` Gene Heskett
2007-04-23 3:08 ` Ingo Molnar
2007-04-23 2:55 ` Ingo Molnar
2007-04-23 3:22 ` Nick Piggin
2007-04-23 3:43 ` Ingo Molnar
2007-04-23 4:06 ` Nick Piggin
2007-04-23 7:10 ` Ingo Molnar
2007-04-23 7:25 ` Nick Piggin
2007-04-23 7:35 ` Ingo Molnar
2007-04-23 9:25 ` Ingo Molnar
2007-04-23 3:19 ` [patch] CFS scheduler, -v5 (build problem - make headers_check fails) Zach Carter
2007-04-23 10:03 ` Ingo Molnar
2007-04-23 5:16 ` [patch] CFS scheduler, -v5 Markus Trippelsdorf
2007-04-23 5:27 ` Markus Trippelsdorf
2007-04-23 6:21 ` Ingo Molnar
2007-04-25 11:43 ` Srivatsa Vaddagiri
2007-04-25 12:51 ` Ingo Molnar
2007-04-23 12:20 ` Guillaume Chazarain
2007-04-23 12:36 ` Ingo Molnar
2007-04-24 16:54 ` Christian Hesse
2007-04-25 9:25 ` Ingo Molnar
2007-04-25 10:51 ` Christian Hesse
2007-04-25 10:56 ` Ingo Molnar
2007-04-23 9:28 ` crash with CFS v4 and qemu/kvm (was: [patch] CFS scheduler, v4) Christian Hesse
2007-04-23 10:18 ` Ingo Molnar
2007-04-24 10:54 ` Christian Hesse
2007-04-22 4:38 [REPORT] cfs-v4 vs sd-0.44 Al Boldi
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=alpine.LFD.0.98.0704230844410.9964@woody.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=caglar@pardus.org.tr \
--cc=ck@vds.kolivas.org \
--cc=davidsen@tmr.com \
--cc=efault@gmx.de \
--cc=gene.heskett@gmail.com \
--cc=jch@pps.jussieu.fr \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=pwil3058@bigpond.net.au \
--cc=tglx@linutronix.de \
--cc=w@1wt.eu \
--cc=wli@holomorphy.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
all inboxes | Powered by JetHome®