public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Juliusz Chroboczek <jch@pps.jussieu.fr>,
	Con Kolivas <kernel@kolivas.org>, 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>,
	Nick Piggin <npiggin@suse.de>, 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] renicing X, cfs-v5 vs sd-0.46
Date: Mon, 23 Apr 2007 21:48:21 +0200	[thread overview]
Message-ID: <20070423194821.GA10286@elte.hu> (raw)
In-Reply-To: <alpine.LFD.0.98.0704230805510.9964@woody.linux-foundation.org>


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> >  4  0      0 475752  13492 176320    0    0     0     0  107 1477 85 15  0  0  0
> >  4  0      0 475752  13492 176320    0    0     0     0  122 1498 84 16  0  0  0
> 
> Did you even *look* at your own numbers? Maybe you looked at 
> "interrpts". The context switch numbers go from 170 per second, to 
> 1500 per second!

i think i managed to look at the correct column :) 1500 per second is 
the absolute ceiling under CFS.

but, even though this utterly ugly hack of renicing (Arjan immediately 
slapped me for it when i mentioned it to him and he correctly predicted 
that lkml would go amok on anything like this) undeniably behaves better 
under CFS and gives a _visually better_ desktop at a 1500 context 
switches per second, i share your unease about it on architectural and 
policy grounds. Doing this hack upstream could easily hinder the 
efficient creation of a healthy economy for "scheduler money", by 
forcibly hacking X out of the picture - while X could be such a nice 
(and important) prototype for a cool and useful new scheduling 
infrastructure.

Basically this hack is bad on policy grounds because it is giving X an 
"legislated, unfair monopoly" on the system. It's the equivalent of a 
state-guaranteed monopoly in certain 'strategic industries'. It has some 
advantages but it is very much net harmful. Most of the time the 
"strategic importance" of any industry can be cleanly driven by the 
normal mechanics of supply and demand: anything important is recognized 
by 'people' as important via actual actions of giving it 'money'. (This 
approach also gives formerly-strategic industries the boot quickly, were 
they to become less strategic to people as things evolve.)

still, recognizing all the very real advantages of a cleaner approach, 
my primary present goal with CFS is to reach "maximum interactivity" 
here and today on a maximimally broad set of workloads, whatever it 
takes, and then to look back and figure out cleaner ways while still 
carefully keeping that maximum interactivity propertly of CFS.

For this particular auto-renicing hack here are the observed objective 
advantages to the user:

 1) while it's still an ugly hack, the increased context-switching rate
    (surprisingly to me!) still has actual, objective, undeniable 
    positive effects even in this totally X-centric worst-case messaging 
    scenario i tried to trigger:

        - visibly better eye-pleasing X behavior under the same
          "performance of scrolling"

        - no hung mouse pointer. Ever. I'd not go as far as Windows to 
          put the mouse refresh code into the kernel, but now having 
          experienced under CFS the 'mouse never hangs under any load' 
          phenomenon for a longer time, i have to admit i got addicted 
          to it. It give instant emotionally positive feedback about 
          "yes, your system is still fine, just overworked a bit", and 
          it also gives a "you caused something to happen on this box, 
          cool boy!" reassurance to the impatient human who is waiting 
          on it - be it that such a minimal thing as a moving mouse 
          pointer.

    There's a new argument as well, not amongst the issues i raised 
    before: people are happily spending 40-50% of their CPU's
    power on Beryl just to get a more ergonomic desktop via 3D effects, 
    so why not allow them to achieve another type of visual ergonomy by 
    allowing an increased, maximum-throttled X context-switch rate,
    without any measurable drop in performance, to a tunable maximum? 
    I can see no easy way for X itself to control this context-switching
    "refresh" rate in a sane way, as its workload is largely detached
    from client workloads and there's no communication between clients.

 2) it's the absolute worst maximum rate you'll ever see under CFS, and
    i definitely concentrated on triggering the worst-case. On other
    schedulers i easily got to 14K context-switches per second or worse,
    depending on the X workload, which hurts performance and makes it 
    behave visually worse. On CFS the 1400 context-switches is the 
    _ceiling_, did not measurably hurt performance and it is tunable 
    ceiling.

 3) this behavior was totally uncontrollable on other schedulers i tried
    and indeed has hurt performance there. On CFS this is still totally
    tunable and controllable on several levels.

i'm not saying that any of this reduces the ugliness of the hack, or 
that any of this makes the strategic disadvantages of this hack 
disappear, i simply tried to point out that despite the existing 
conventional wisdom it's apparently much more useful in practice on CFS 
than on other schedulers.

And if the "economy of scheduling" experiment fails in practice for some 
presently unknown technological reason, we might as well have to go back 
to ugly tricks like this one. With its 5 lines and limited scope i think 
it still beats 500 lines of convoluted scheduling heuristics :-/ Right 
now i'm very positive about the "economy of scheduling" angle, i think 
we have a realistic chance to pull it off.

	Ingo

  parent reply	other threads:[~2007-04-23 19:49 UTC|newest]

Thread overview: 148+ 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
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 [this message]
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
     [not found] <8c1Z0-5Lw-29@gated-at.bofh.it>
     [not found] ` <8cWMV-8vr-3@gated-at.bofh.it>
     [not found]   ` <8d8uH-1sm-3@gated-at.bofh.it>
     [not found]     ` <8dawR-4zw-21@gated-at.bofh.it>
2007-04-23 18:52       ` [report] renicing X, cfs-v5 vs sd-0.46 Niel Lambrechts
2007-04-24  1:51         ` Gene Heskett

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=20070423194821.GA10286@elte.hu \
    --to=mingo@elte.hu \
    --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=npiggin@suse.de \
    --cc=pwil3058@bigpond.net.au \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --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