From: Mike Galbraith <efault@gmx.de>
To: Con Kolivas <kernel@kolivas.org>
Cc: Colin Walters <walters@verbum.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>, Oleg Nesterov <oleg@redhat.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Markus Trippelsdorf <markus@trippelsdorf.de>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4] sched: automated per session task groups
Date: Sun, 05 Dec 2010 12:36:33 +0100 [thread overview]
Message-ID: <1291548993.7581.65.camel@marge.simson.net> (raw)
In-Reply-To: <201012052118.43843.kernel@kolivas.org>
On Sun, 2010-12-05 at 21:18 +1100, Con Kolivas wrote:
> Greets.
>
> I applaud your efforts to continue addressing interactivity and responsiveness
> but, I know I'm going to regret this, I feel strongly enough to speak up about
> this change.
>
> On Sun, 5 Dec 2010 10:43:44 Colin Walters wrote:
> > On Sat, Dec 4, 2010 at 5:39 PM, Linus Torvalds
> > <torvalds@linux-foundation.org> wrote:
> > > What's your point again? It's a heuristic.
> >
> > So if it's a heuristic the OS can get wrong,
>
> This is precisely what I see as the flaw in this approach. The whole reason
> you have CFS now is that we had a scheduler which was pretty good for all the
> other things in the O(1) scheduler, but needed heuristics to get interactivity
> right. I put them there.
Actually, Linus laid the foundation with sleeper fairness, Ingo expanded
it to requeue "interactive" tasks in the active array, and you tweaked
the result.
> Then I spent the next few years trying to find a way
> to get rid of them. The reason is precisely what Colin says above. Heuristics
> get it wrong sometimes. So no matter how smart you think your heuristics are,
> it is impossible to get it right 100% of the time. If the heuristics make it
> better 99% of the time, and introduce disastrous corner cases, regressions and
> exploits 1% of the time, that's unforgivable. That's precisely what we had
> with the old O(1) scheduler and that's what you got rid of when you put CFS
> into mainline. The whole reason CFS was better was it was mostly fair and
> concentrated on ensuring decent latency rather than trying to guess what would
> be right, so it was predictable and reliable.
And it still is Con. I didn't rewrite the thing, I just added an
automated task grouping. Session to session fairness is just as holy as
any sacred cow definition of fair you care to trot out.
> So if you introduce heuristics once again into the scheduler to try and
> improve the desktop by unfairly distributing CPU, you will go back to where
> you once were. Mostly better but sometimes really badly wrong. No matter how
> smart you think you can be with heuristics they cannot be right all the time.
> And there are regressions with these tty followed by per session group
> patches. Search forums where desktop users go and you'll see that people are
> afraid to speak up on lkml but some users are having mplayer and amarok
> skipping under light load when trying them.
Shrug. I can't debug what isn't reported.
> You want to program more
> intelligence in to work around these regressions, you'll just get yourself
> deeper and deeper into the same quagmire. The 'quick fix' you seek now is not
> something you should be defending so vehemently. The "I have a solution now"
> just doesn't make sense in this light. I for one do not welcome our new
> heuristic overlords.
I for one don't welcome childish name calling.
> If you're serious about really improving the desktop from within the kernel,
> as you seem to be with this latest change, then make a change that's
> predictable and gets it right ALL the time and is robust for the future. Stop
> working within all the old fashioned concepts and allow userspace to tell the
> kernel what it wants, and give the user the power to choose. If you think this
> is too hard and not doable, or that the user is too uninformed or want to
> modify things themselves, then allow me to propose a relatively simple change
> that can expedite this.
>
> There are two aspects to getting good desktop behaviour, enough CPU and low
> latency. 'nice' by your own admission is too crude and doesn't really describe
> how either of these should really be modified. Furthermore there are 40 levels
> of it and only about 4 or 5 are ever used. We also know that users don't even
> bother using it.
>
> What I propose is a new syscall latnice for "latency nice". It only need have
> 4 levels, 1 for default, 0 for latency insensitive, 2 for relatively latency
> sensitive gui apps, and 3 for exquisitely latency sensitive uses such as
> audio. These should not require extra privileges to use and thus should also
> not be usable for "exploiting" extra CPU by default. It's simply a matter of
> working with lower latencies yet shorter quota (or timeslices) which would
> mean throughput on these apps is sacrificed due to cache trashing but then
> that's not what latency sensitive applications need. These can then be
> encouraged to be included within the applications themselves, making this a
> more long term change. 'Firefox' could set itself 2, 'Amarok' and 'mplayer' 3,
> and 'make' - bless its soul - 0, and so on. Keeping the range simple and
> defined will make it easy for userspace developers to cope with, and users to
> fiddle with.
An automated per session task group is an evil heuristic, so we should
use kinda sorta sensitive, really REALLY sensitive, don't give a damn,
or no frickin' clue... to make 100% accurate non-heuristic scheduling
decisions instead? Did I get that right?
Goodbye.
-Mike
next prev parent reply other threads:[~2010-12-05 11:36 UTC|newest]
Thread overview: 323+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-19 9:16 [RFC/RFT PATCH] sched: automated per tty task groups Mike Galbraith
2010-10-19 9:26 ` Peter Zijlstra
2010-10-19 9:39 ` Mike Galbraith
2010-10-19 9:43 ` Peter Zijlstra
2010-10-19 9:46 ` Mike Galbraith
2010-10-21 7:55 ` Mike Galbraith
2010-10-21 10:28 ` Peter Zijlstra
2010-10-19 9:29 ` Peter Zijlstra
2010-10-19 9:42 ` Mike Galbraith
2010-10-19 11:29 ` Mike Galbraith
2010-10-19 11:56 ` Ingo Molnar
2010-10-19 13:12 ` Mike Galbraith
2010-10-19 15:28 ` Linus Torvalds
2010-10-19 18:13 ` Mike Galbraith
2010-10-19 18:53 ` Mike Galbraith
2010-10-20 2:56 ` Ingo Molnar
2010-10-21 8:11 ` Mike Galbraith
2010-10-21 8:31 ` Ingo Molnar
2010-10-21 8:39 ` Mike Galbraith
2010-10-21 8:48 ` Markus Trippelsdorf
2010-10-21 8:52 ` Mike Galbraith
[not found] ` <20101021115723.GA1587@arch.trippelsdorf.de>
2010-10-21 16:22 ` Mathieu Desnoyers
2010-10-21 10:51 ` Mathieu Desnoyers
2010-10-21 11:25 ` Peter Zijlstra
2010-10-21 16:29 ` Oleg Nesterov
2010-10-21 19:11 ` Mike Galbraith
2010-10-26 7:07 ` [RFC/RFT PATCH v3] " Mike Galbraith
2010-10-26 7:29 ` Mike Galbraith
2010-10-26 15:47 ` Linus Torvalds
2010-10-27 1:58 ` Mike Galbraith
2010-11-11 15:26 ` Mike Galbraith
2010-11-11 18:04 ` Ingo Molnar
2010-11-11 18:34 ` Linus Torvalds
2010-11-11 19:08 ` Mike Galbraith
2010-11-11 19:37 ` Linus Torvalds
2010-11-11 20:29 ` Oleg Nesterov
2010-11-11 19:15 ` Markus Trippelsdorf
2010-11-11 19:35 ` Mike Galbraith
2010-11-11 19:38 ` Markus Trippelsdorf
2010-11-11 19:58 ` Mike Galbraith
2010-11-11 20:27 ` Oleg Nesterov
2010-11-11 22:20 ` Mike Galbraith
2010-11-12 18:12 ` Oleg Nesterov
2010-11-13 11:42 ` Mike Galbraith
2010-11-14 17:19 ` Mike Galbraith
2010-11-14 17:49 ` Markus Trippelsdorf
2010-11-14 18:10 ` Mike Galbraith
2010-11-14 19:28 ` Linus Torvalds
2010-11-14 20:20 ` Linus Torvalds
2010-11-14 20:27 ` Markus Trippelsdorf
2010-11-14 20:48 ` Linus Torvalds
2010-11-14 23:43 ` Mike Galbraith
2010-11-15 0:15 ` Linus Torvalds
2010-11-15 0:26 ` Linus Torvalds
2010-11-15 1:13 ` Mike Galbraith
2010-11-15 3:12 ` Linus Torvalds
2010-11-15 14:00 ` Mike Galbraith
2010-11-15 8:57 ` Peter Zijlstra
2010-11-15 11:32 ` Mike Galbraith
2010-11-15 11:46 ` Mike Galbraith
2010-11-15 12:57 ` Oleg Nesterov
2010-11-15 21:25 ` Mike Galbraith
2010-11-15 22:48 ` Peter Zijlstra
2010-11-16 1:56 ` Vivek Goyal
2010-11-16 2:18 ` Linus Torvalds
2010-11-17 8:06 ` Balbir Singh
2010-11-16 14:02 ` Mike Galbraith
2010-11-16 14:11 ` Peter Zijlstra
2010-11-16 14:47 ` Dhaval Giani
2010-11-16 17:03 ` Lennart Poettering
2010-11-16 17:11 ` Linus Torvalds
2010-11-16 18:16 ` Lennart Poettering
2010-11-16 18:21 ` Peter Zijlstra
2010-11-16 18:33 ` Paul Menage
2010-11-16 18:55 ` david
2010-11-16 18:59 ` Peter Zijlstra
2010-11-16 19:09 ` Vivek Goyal
2010-11-16 19:13 ` Peter Zijlstra
2010-11-16 19:22 ` Vivek Goyal
2010-11-16 19:25 ` Peter Zijlstra
2010-11-16 19:40 ` Vivek Goyal
2010-11-16 19:43 ` Peter Zijlstra
2010-11-16 19:49 ` Linus Torvalds
2010-11-16 19:35 ` Linus Torvalds
2010-11-16 20:03 ` Lennart Poettering
2010-11-16 20:12 ` Peter Zijlstra
2010-11-16 18:49 ` Linus Torvalds
2010-11-16 19:03 ` Pekka Enberg
2010-11-16 20:21 ` Kay Sievers
2010-11-16 20:35 ` Linus Torvalds
2010-11-16 20:31 ` Lennart Poettering
2010-11-17 13:21 ` Stephen Clark
2010-11-16 19:08 ` david
2010-11-16 20:33 ` Lennart Poettering
2010-11-16 20:38 ` Linus Torvalds
2010-11-16 21:14 ` Lennart Poettering
2010-11-17 13:23 ` Stephen Clark
2010-11-18 22:33 ` Hans-Peter Jansen
2010-11-18 23:12 ` Samuel Thibault
2010-11-18 23:35 ` Mike Galbraith
2010-11-18 23:43 ` Samuel Thibault
2010-11-18 23:51 ` Linus Torvalds
2010-11-19 0:02 ` Samuel Thibault
2010-11-19 0:07 ` Samuel Thibault
2010-11-19 11:57 ` Peter Zijlstra
2010-11-19 14:24 ` Samuel Thibault
2010-11-19 14:43 ` Peter Zijlstra
2010-11-19 14:55 ` Samuel Thibault
2010-11-19 0:42 ` Linus Torvalds
2010-11-19 0:59 ` Samuel Thibault
2010-11-19 1:11 ` Linus Torvalds
2010-11-19 1:12 ` Mike Galbraith
2010-11-19 1:23 ` Samuel Thibault
2010-11-19 2:28 ` Mike Galbraith
2010-11-19 9:02 ` Samuel Thibault
2010-11-19 11:49 ` Peter Zijlstra
2010-11-19 12:19 ` Peter Zijlstra
2010-11-19 12:55 ` Mathieu Desnoyers
2010-11-19 13:00 ` Peter Zijlstra
2010-11-19 13:20 ` Mathieu Desnoyers
2010-11-19 12:31 ` Paul Menage
2010-11-19 12:51 ` Peter Zijlstra
2010-11-19 13:03 ` Mike Galbraith
2010-11-19 12:38 ` Mike Galbraith
2010-11-22 6:22 ` Balbir Singh
2010-11-18 23:29 ` Mike Galbraith
2010-11-16 20:44 ` Pekka Enberg
2010-11-16 19:27 ` Dhaval Giani
2010-11-16 19:42 ` Diego Calleja
2010-11-16 19:45 ` Linus Torvalds
2010-11-16 19:56 ` Paul Menage
2010-11-16 20:17 ` Vivek Goyal
2010-11-16 20:50 ` Lennart Poettering
2010-11-20 22:16 ` Mika Laitio
2010-11-21 0:19 ` Mike Galbraith
2010-11-16 20:28 ` Lennart Poettering
2010-11-16 20:46 ` David Miller
2010-11-16 21:08 ` Lennart Poettering
2010-11-16 21:14 ` David Miller
2010-11-16 20:52 ` Alan Cox
2010-11-16 21:08 ` Linus Torvalds
2010-11-16 21:19 ` Lennart Poettering
2010-11-16 23:39 ` Ted Ts'o
2010-11-17 0:21 ` Lennart Poettering
2010-11-17 2:06 ` Ted Ts'o
2010-11-17 14:57 ` Vivek Goyal
2010-11-17 15:01 ` Lennart Poettering
2010-11-17 17:16 ` John Stoffel
2010-11-19 5:20 ` Andev
2010-11-19 11:59 ` Peter Zijlstra
2010-11-19 13:03 ` Ben Gamari
2010-11-19 13:07 ` Theodore Tso
2010-11-19 16:29 ` David Miller
2010-11-19 16:34 ` Lennart Poettering
2010-11-19 16:43 ` David Miller
2010-11-19 17:51 ` Linus Torvalds
2010-11-19 19:12 ` Ben Gamari
2010-11-19 19:48 ` Linus Torvalds
2010-11-20 1:33 ` Lennart Poettering
2010-11-19 20:38 ` Paul Menage
2010-11-20 1:13 ` Lennart Poettering
2010-11-20 4:25 ` Balbir Singh
2010-11-20 15:41 ` Lennart Poettering
2010-11-22 6:24 ` Balbir Singh
2010-11-22 19:21 ` Lennart Poettering
2010-11-19 19:31 ` Mike Galbraith
2010-11-19 13:21 ` Peter Zijlstra
2010-11-17 22:34 ` Lennart Poettering
2010-11-17 22:37 ` Peter Zijlstra
2010-11-17 22:45 ` Lennart Poettering
2010-11-17 22:52 ` Peter Zijlstra
2010-11-18 15:00 ` Stephen Clark
2010-11-17 23:49 ` Lennart Poettering
2010-11-16 21:17 ` Lennart Poettering
2010-11-17 20:59 ` James Cloos
2010-11-22 6:16 ` Balbir Singh
2010-11-16 18:57 ` Stephen Clark
2010-11-16 19:12 ` Vivek Goyal
2010-11-16 19:57 ` Mike Galbraith
2010-11-16 20:36 ` Lennart Poettering
2010-11-16 19:42 ` Markus Trippelsdorf
2010-11-16 18:08 ` Peter Zijlstra
2010-11-16 18:56 ` Stephen Clark
2010-11-16 20:05 ` Lennart Poettering
2010-11-16 20:15 ` Peter Zijlstra
2010-11-19 0:35 ` H. Peter Anvin
2010-11-19 0:42 ` Samuel Thibault
2010-11-19 3:15 ` Mathieu Desnoyers
[not found] ` <20101120090955.GB12043@balbir.in.ibm.com>
2010-11-20 19:47 ` Mike Galbraith
2010-11-16 13:04 ` Oleg Nesterov
2010-11-16 14:18 ` Mike Galbraith
2010-11-16 15:03 ` Oleg Nesterov
2010-11-16 15:41 ` Mike Galbraith
2010-11-16 17:28 ` Ingo Molnar
2010-11-16 17:42 ` Mike Galbraith
2010-11-20 19:35 ` [PATCH v4] sched: automated per session " Mike Galbraith
2010-11-30 15:39 ` [tip:sched/core] sched: Add 'autogroup' scheduling feature: " tip-bot for Mike Galbraith
2010-12-15 17:50 ` Oleg Nesterov
2010-12-16 7:53 ` Mike Galbraith
2010-12-16 14:09 ` Mike Galbraith
2010-12-16 15:07 ` Oleg Nesterov
2011-01-04 14:18 ` [tip:sched/core] sched, autogroup: Fix potential access to freed memory tip-bot for Mike Galbraith
2010-12-20 13:08 ` [tip:sched/core] sched: Add 'autogroup' scheduling feature: automated per session task groups Bharata B Rao
2010-12-20 13:19 ` Peter Zijlstra
2010-12-20 15:46 ` Bharata B Rao
2010-12-20 15:53 ` Bharata B Rao
2010-12-21 8:33 ` Peter Zijlstra
2010-12-20 16:39 ` Mike Galbraith
2010-12-21 5:04 ` Bharata B Rao
2010-12-21 5:50 ` Mike Galbraith
2010-12-04 17:39 ` [PATCH v4] sched: " Colin Walters
2010-12-04 18:33 ` Linus Torvalds
2010-12-04 20:01 ` Colin Walters
2010-12-04 22:39 ` Linus Torvalds
2010-12-04 23:43 ` Colin Walters
2010-12-05 0:31 ` Linus Torvalds
2010-12-05 7:47 ` Ray Lee
2010-12-05 19:22 ` Colin Walters
2010-12-05 20:47 ` Linus Torvalds
2010-12-05 22:47 ` Colin Walters
2010-12-05 22:58 ` Jesper Juhl
2010-12-05 23:05 ` Jesper Juhl
2010-12-07 18:51 ` Peter Zijlstra
2010-12-05 10:18 ` Con Kolivas
2010-12-05 11:36 ` Mike Galbraith [this message]
2010-12-05 20:58 ` Ingo Molnar
2010-12-04 23:31 ` david
2010-12-05 11:11 ` Nikos Chantziaras
2010-12-05 15:12 ` [PATCH v4] Regression: " Alan Cox
2010-12-05 16:16 ` Florian Mickler
2010-12-05 19:48 ` Alan Cox
2010-12-06 16:03 ` Florian Mickler
2010-12-05 16:59 ` Mike Galbraith
2010-12-05 17:09 ` Mike Galbraith
2010-12-05 17:15 ` Mike Galbraith
2010-12-06 0:28 ` [PATCH v4] " Valdis.Kletnieks
2010-11-16 14:01 ` [RFC/RFT PATCH v3] sched: automated per tty " Peter Zijlstra
2010-11-16 14:19 ` Mike Galbraith
2010-11-17 1:31 ` Kyle McMartin
2010-11-17 1:50 ` Linus Torvalds
2010-11-17 1:56 ` Kyle McMartin
2010-11-17 2:14 ` Mike Galbraith
2010-11-15 0:02 ` Mike Galbraith
2010-11-15 22:41 ` Valdis.Kletnieks
2010-11-15 23:25 ` Linus Torvalds
2010-11-20 19:33 ` Jesper Juhl
2010-11-20 19:51 ` Mike Galbraith
2010-11-20 20:37 ` Jesper Juhl
2010-11-20 22:02 ` Konstantin Svist
2010-11-20 22:15 ` Samuel Thibault
2010-11-20 22:18 ` Thomas Fjellstrom
2010-11-20 20:25 ` Samuel Thibault
2010-11-15 23:46 ` Mike Galbraith
2010-11-15 23:50 ` Linus Torvalds
2010-11-16 0:04 ` Mike Galbraith
2010-11-16 1:18 ` Linus Torvalds
2010-11-16 1:55 ` Paul Menage
2010-11-16 12:58 ` Mike Galbraith
2010-11-16 18:25 ` Paul Menage
2010-11-16 13:59 ` Peter Zijlstra
2010-11-16 14:26 ` Mike Galbraith
2010-10-21 11:27 ` [RFC/RFT PATCH] " Mike Galbraith
2010-10-20 13:55 ` Markus Trippelsdorf
2010-10-20 14:41 ` Mike Galbraith
2010-11-21 13:37 [PATCH v4] sched: automated per session " Ingo Molnar
2010-11-21 13:39 ` Ingo Molnar
2010-11-21 15:44 ` Oleg Nesterov
2010-11-21 16:35 ` Mike Galbraith
2010-11-21 16:15 ` Mike Galbraith
2010-11-21 18:43 ` Gene Heskett
2010-11-25 16:00 ` Mike Galbraith
2010-11-28 14:24 ` Mike Galbraith
2010-11-28 19:31 ` Linus Torvalds
2010-11-28 20:18 ` Ingo Molnar
2010-11-29 11:53 ` Peter Zijlstra
2010-11-29 12:30 ` Ingo Molnar
2010-11-29 13:45 ` Mike Galbraith
2010-11-29 13:47 ` Ingo Molnar
2010-11-29 14:04 ` Mike Galbraith
2010-11-29 16:27 ` Linus Torvalds
2010-11-29 16:44 ` Ingo Molnar
2010-11-29 17:37 ` Peter Zijlstra
2010-11-29 18:03 ` Ingo Molnar
2010-11-29 19:06 ` Mike Galbraith
2010-11-29 19:20 ` Ingo Molnar
2010-11-30 3:39 ` Paul Turner
2010-11-30 4:14 ` Mike Galbraith
2010-11-30 4:23 ` Paul Turner
2010-11-30 13:18 ` Mike Galbraith
2010-11-30 13:48 ` Peter Zijlstra
2010-11-30 13:59 ` Ingo Molnar
2010-11-30 14:13 ` Ingo Molnar
2010-11-30 16:41 ` Mike Galbraith
2010-11-30 15:17 ` Vivek Goyal
2010-11-30 17:13 ` Mike Galbraith
2010-11-30 19:36 ` Vivek Goyal
2010-12-01 5:01 ` Américo Wang
2010-12-01 6:09 ` Mike Galbraith
2010-12-01 11:36 ` Peter Zijlstra
2010-12-01 22:12 ` Valdis.Kletnieks
2010-12-01 5:57 ` Mike Galbraith
2010-12-01 11:33 ` Peter Zijlstra
2010-12-01 11:55 ` Mike Galbraith
2010-12-01 14:55 ` Vivek Goyal
2010-12-01 15:04 ` Mike Galbraith
2010-11-30 7:54 ` Mike Galbraith
2010-11-30 14:18 ` Ingo Molnar
2010-11-30 14:53 ` Ingo Molnar
2010-11-30 15:01 ` Peter Zijlstra
2010-11-30 15:11 ` Ingo Molnar
2010-11-30 16:28 ` Mike Galbraith
2010-11-29 5:45 ` Mike Galbraith
2010-12-01 3:39 ` Paul Turner
2010-12-01 3:39 ` Paul Turner
2010-12-01 6:16 ` Mike Galbraith
2010-12-03 5:11 ` Paul Turner
2010-12-03 6:48 ` Mike Galbraith
2010-12-03 8:37 ` Paul Turner
2010-12-04 23:55 ` James Courtier-Dutton
2010-12-05 5:11 ` Paul Turner
2010-12-07 11:32 ` Paul Turner
2010-12-15 12:10 ` Paul Turner
2010-12-01 11:34 ` Peter Zijlstra
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=1291548993.7581.65.camel@marge.simson.net \
--to=efault@gmx.de \
--cc=a.p.zijlstra@chello.nl \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=markus@trippelsdorf.de \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=torvalds@linux-foundation.org \
--cc=walters@verbum.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;
as well as URLs for NNTP newsgroup(s).