From: "David Schwartz" <davids@webmaster.com>
To: "Linux-Kernel@Vger. Kernel. Org" <linux-kernel@vger.kernel.org>
Subject: RE: RSDL v0.31
Date: Thu, 29 Mar 2007 00:10:23 -0700 [thread overview]
Message-ID: <MDEHLPKNGKAHNMBLJOLKGEMCCJAC.davids@webmaster.com> (raw)
In-Reply-To: <460AFC35.5070806@tmr.com>
Bill Davidsen wrote:
> I agree for giving a process more than a fair share, but I don't think
> "latency" is the best term for what you describe later. If you think of
> latency as the time between a process unblocking and the time when it
> gets CPU, that is a more traditional interpretation. I'm not really sure
> latency and CPU-starved are compatible.
For CPU-starvation, I think 'nice' is always going to be the fix. If you
want a process to get more than its 'fair share' of the CPU, you have to ask
for that. I think the scheduler should be fair by default.
However, cleverness in the scheduler with latency can make things better
without being unfair to anyone. It's perfectly fair for a task that has been
blocked for awhile to pre-empt a CPU-limited task when it unblocks.
What I'm arguing is that if your task is CPU-limited and the scheduler is
fair, that's your fault -- nice it. If your task is suffering from poor
latency, and it's using less than its fair share of the CPU (because it is
not CPU-limited), that is something the scheduler can be smarter about.
Two things that I think can help improve interactivity without breaking
fairness are:
1) Keep a longer-term history of tasks that have yielded the CPU so that
they can be more likely to pre-empt when they are unblocked by I/O. (The
improved accounting accuracy may go a long way towards doing this. I
personally like exponential decay measurements of CPU usage.)
2) Be smart about things like pipes. When one process unblocks another
through a pipe, socket, or the like, do not pre-empt (this defeats batching
and blows out caches needlessly), but do try to schedule the unblocked
process soon. Don't penalize one process for unblocking another, that's a
good thing for it to do.
I believe that the process of making schedulers smarter and fairer (and
fixing bugs in them) will get us to a place where interactivity is superb
without sacrificing fairness among tasks at equal static priority.
Honestly, I have always been against aggressive pre-emption. I think as CPUs
get faster and timeslices get shorter, it makes less and less sense. In many
cases you are better off just making the task ready-to-run and allowing its
higher dynamic priority to make it next. I strongly believe this for cases
where the running task unblocked the other task. (I think in too many cases,
you blow out the caches and force a context switch on a task that was just a
few hundred instructions short of being finished with what it was doing as
you punish it for getting useful work done.)
DS
next prev parent reply other threads:[~2007-03-29 7:11 UTC|newest]
Thread overview: 197+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-04 20:35 [ANNOUNCE] RSDL completely fair starvation free interactive cpu scheduler Al Boldi
2007-03-04 21:49 ` Con Kolivas
[not found] ` <45EB45F7.3050208@simon.arlott.org.uk>
2007-03-04 22:27 ` Con Kolivas
2007-03-05 18:29 ` Simon Arlott
2007-03-05 21:36 ` Con Kolivas
2007-03-04 23:13 ` Willy Tarreau
2007-03-04 23:58 ` Con Kolivas
2007-03-05 0:10 ` [ck] " jos poortvliet
2007-03-05 1:09 ` Gene Heskett
[not found] ` <200703050834.45712.a1426z@gawab.com>
[not found] ` <20070305060732.GQ30401@nysv.org>
2007-03-05 11:59 ` [ck] " Al Boldi
2007-03-05 12:29 ` Con Kolivas
[not found] ` <200703052123.01095.a1426z@gawab.com>
2007-03-05 22:10 ` Con Kolivas
2007-03-06 8:42 ` Xavier Bestel
2007-03-06 15:15 ` Al Boldi
2007-03-11 18:11 ` Al Boldi
2007-03-11 21:52 ` Con Kolivas
2007-03-11 22:12 ` Con Kolivas
2007-03-12 4:42 ` Al Boldi
2007-03-12 4:53 ` Con Kolivas
2007-03-12 11:26 ` Al Boldi
2007-03-12 12:52 ` Con Kolivas
2007-03-12 14:14 ` Al Boldi
2007-03-12 14:58 ` [ck] " jos poortvliet
2007-03-12 16:37 ` michael chang
2007-03-12 17:41 ` Al Boldi
2007-03-12 18:05 ` Con Kolivas
2007-03-12 18:47 ` [ck] " jos poortvliet
2007-03-12 18:58 ` Antonio Vargas
2007-03-19 10:47 ` Helge Hafting
2007-03-18 1:30 ` Bill Davidsen
2007-03-18 10:50 ` [ck] " jos poortvliet
2007-03-13 15:31 ` [PATCH] [RSDL-0.30] sched: rsdl improve latencies with differential nice Con Kolivas
2007-03-13 16:03 ` [PATCH] [RSDL-0.30] sched: rsdl improve latencies with differential nice -1 Con Kolivas
2007-03-13 16:08 ` Con Kolivas
2007-03-13 20:58 ` Con Kolivas
2007-03-13 23:08 ` RSDL development plans Con Kolivas
2007-03-16 12:25 ` Con Kolivas
2007-03-16 13:40 ` RSDL v0.31 Con Kolivas
2007-03-16 15:34 ` Mike Galbraith
2007-03-16 21:13 ` Con Kolivas
2007-03-16 22:30 ` Mike Galbraith
2007-03-16 23:05 ` [ck] " Dirk Schoebel
2007-03-17 4:24 ` Nicholas Miell
2007-03-17 5:56 ` Mike Galbraith
2007-03-17 6:08 ` Mike Galbraith
2007-03-17 13:56 ` Ed Tomlinson
2007-03-18 19:37 ` Lee Revell
2007-03-18 19:55 ` Mike Galbraith
2007-03-18 22:45 ` Szonyi Calin
2007-03-19 2:27 ` David Schwartz
2007-03-19 6:21 ` Mike Galbraith
2007-03-19 6:59 ` Willy Tarreau
2007-03-17 6:26 ` Nicholas Miell
2007-03-17 7:11 ` Mike Galbraith
2007-03-17 7:25 ` William Lee Irwin III
2007-03-17 7:29 ` Nicholas Miell
2007-03-17 11:48 ` Gene Heskett
2007-03-17 7:45 ` Ingo Molnar
2007-03-17 7:44 ` David Lang
2007-03-17 8:46 ` Mike Galbraith
2007-03-17 14:09 ` [ck] " Mark Glines
2007-03-17 14:33 ` Mike Galbraith
2007-03-17 14:54 ` Mark Glines
2007-03-17 14:58 ` Mike Galbraith
2007-03-17 8:23 ` Nicholas Miell
2007-03-17 9:42 ` [patch] CFS scheduler: Completely Fair Scheduler / CONFIG_SCHED_FAIR Ingo Molnar
2007-03-17 8:41 ` RSDL v0.31 Serge Belyshev
2007-03-17 9:48 ` Con Kolivas
2007-03-17 9:58 ` Mike Galbraith
2007-03-17 10:49 ` Mike Galbraith
2007-03-17 12:05 ` Gene Heskett
2007-03-17 13:36 ` Mike Galbraith
2007-03-17 17:03 ` Gene Heskett
2007-03-17 17:37 ` Mike Galbraith
2007-03-17 18:23 ` [ck] " Kacper Wysocki
2007-03-17 18:45 ` Mike Galbraith
2007-03-17 13:58 ` michael chang
2007-03-17 20:55 ` Al Boldi
2007-03-18 6:17 ` Mike Galbraith
2007-03-18 6:47 ` Kasper Sandberg
2007-03-18 7:08 ` Mike Galbraith
2007-03-18 7:22 ` [ck] " Radoslaw Szkodzinski
2007-03-18 7:38 ` Mike Galbraith
2007-03-18 8:04 ` Mike Galbraith
2007-03-18 8:20 ` jimmy bahuleyan
2007-03-18 8:34 ` Mike Galbraith
2007-03-18 9:57 ` Kasper Sandberg
2007-03-18 13:57 ` Avuton Olrich
2007-03-19 20:47 ` Bill Davidsen
2007-03-20 10:19 ` jos poortvliet
2007-03-21 8:58 ` Kasper Sandberg
2007-03-18 15:44 ` Radoslaw Szkodzinski
2007-03-18 16:09 ` jos poortvliet
2007-03-19 16:07 ` Mark Lord
2007-03-19 16:26 ` Xavier Bestel
2007-03-19 16:36 ` Mark Lord
2007-03-19 16:43 ` Xavier Bestel
2007-03-20 3:11 ` Linus Torvalds
2007-03-20 6:11 ` Willy Tarreau
2007-03-20 8:03 ` Mike Galbraith
2007-03-21 14:57 ` Mike Galbraith
2007-03-21 16:02 ` Peter Zijlstra
2007-03-21 17:06 ` Mike Galbraith
2007-03-22 7:07 ` Mike Galbraith
2007-03-22 9:18 ` Ingo Molnar
2007-03-22 9:34 ` Mike Galbraith
2007-03-22 9:41 ` Mike Galbraith
2007-03-22 22:03 ` Con Kolivas
2007-03-22 22:50 ` Con Kolivas
2007-03-23 4:39 ` Mike Galbraith
2007-03-23 5:59 ` Con Kolivas
2007-03-23 6:11 ` Mike Galbraith
2007-03-23 12:17 ` Mike Galbraith
[not found] ` <20070321161147.54c7a727@localhost>
2007-03-21 17:07 ` Mike Galbraith
2007-03-22 4:49 ` Willy Tarreau
2007-03-22 7:14 ` Mike Galbraith
2007-03-20 9:03 ` Xavier Bestel
2007-03-20 12:31 ` Artur Skawina
2007-03-20 19:16 ` Artur Skawina
2007-03-21 7:50 ` Ingo Molnar
2007-03-21 10:43 ` David Schwartz
2007-03-28 23:37 ` Bill Davidsen
2007-03-29 7:10 ` David Schwartz [this message]
2007-03-29 7:34 ` Nick Piggin
2007-03-20 15:31 ` Linus Torvalds
2007-03-20 18:08 ` Al Boldi
2007-03-21 8:22 ` Keith Duthie
2007-03-28 23:43 ` Bill Davidsen
2007-03-20 10:26 ` [ck] " jos poortvliet
2007-03-20 13:22 ` Mark Lord
2007-03-20 15:16 ` Ray Lee
2007-03-20 15:20 ` Mark Lord
2007-03-21 8:55 ` Kasper Sandberg
2007-03-19 20:53 ` Al Boldi
2007-03-20 19:50 ` Artur Skawina
2007-03-21 4:15 ` Al Boldi
2007-03-21 17:24 ` Artur Skawina
2007-03-19 16:03 ` Mark Lord
2007-03-17 11:49 ` is RSDL an "unfair" scheduler too? Ingo Molnar
2007-03-17 12:02 ` Con Kolivas
2007-03-17 12:23 ` [ck] " jos poortvliet
2007-03-17 17:31 ` David Schwartz
2007-03-17 12:28 ` Ingo Molnar
2007-03-17 12:43 ` Con Kolivas
2007-03-17 16:34 ` Ingo Molnar
2007-03-18 3:23 ` Bill Davidsen
2007-03-18 2:13 ` Bill Davidsen
2007-03-18 3:20 ` Kasper Sandberg
2007-03-18 5:37 ` Mike Galbraith
2007-03-18 10:58 ` [ck] " jos poortvliet
2007-03-17 12:15 ` jos poortvliet
2007-03-17 20:41 ` Avi Kivity
2007-03-18 1:25 ` William Lee Irwin III
2007-03-18 1:32 ` Linus Torvalds
2007-03-18 5:24 ` Willy Tarreau
2007-03-18 5:55 ` Avi Kivity
2007-03-19 2:27 ` David Schwartz
2007-03-19 13:27 ` Radoslaw Szkodzinski
2007-03-19 18:30 ` David Lang
2007-03-19 15:25 ` Avi Kivity
2007-03-19 16:06 ` Helge Hafting
2007-03-19 16:37 ` Avi Kivity
2007-03-18 6:09 ` Bill Huey
2007-03-18 6:37 ` Mike Galbraith
2007-03-18 7:35 ` Bill Huey
2007-03-19 21:14 ` Bill Davidsen
2007-03-18 6:26 ` Mike Galbraith
2007-03-18 6:54 ` [ck] " Radoslaw Szkodzinski
2007-03-18 7:58 ` Willy Tarreau
2007-03-18 8:45 ` Avi Kivity
2007-03-18 5:00 ` Avi Kivity
2007-03-17 15:13 ` RSDL v0.31 Mark Hahn
2007-03-17 17:22 ` Stephen Clark
2007-03-19 15:06 ` Chris Friesen
2007-03-17 7:56 ` Ingo Molnar
2007-03-17 11:07 ` [ck] " jos poortvliet
2007-03-17 12:44 ` Ingo Molnar
2007-03-17 13:44 ` jos poortvliet
2007-03-17 14:04 ` [ck] " Ed Tomlinson
2007-03-17 14:32 ` Rik van Riel
2007-03-17 14:43 ` Mike Galbraith
2007-03-17 15:39 ` Ingo Molnar
2007-03-16 17:12 ` AshMilsted
2007-03-16 17:41 ` Gabriel C
2007-03-16 21:55 ` Al Boldi
2007-03-17 2:51 ` Con Kolivas
2007-03-17 4:40 ` Al Boldi
2007-03-17 4:57 ` Con Kolivas
2007-03-17 5:15 ` Gene Heskett
2007-03-17 13:50 ` Ed Tomlinson
2007-03-17 16:12 ` Al Boldi
2007-03-16 13:42 ` RSDL development plans Mike Galbraith
2007-03-16 13:59 ` Con Kolivas
2007-03-16 14:07 ` Mike Galbraith
2007-03-14 9:13 ` [PATCH] [RSDL-0.30] sched: rsdl improve latencies with differential nice Mike Galbraith
2007-03-14 9:25 ` Con Kolivas
2007-03-14 9:42 ` 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=MDEHLPKNGKAHNMBLJOLKGEMCCJAC.davids@webmaster.com \
--to=davids@webmaster.com \
--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
all inboxes | Powered by JetHome®