From: Avi Kivity <avi@argo.co.il>
To: davids@webmaster.com
Cc: "Linux-Kernel@Vger. Kernel. Org" <linux-kernel@vger.kernel.org>
Subject: Re: is RSDL an "unfair" scheduler too?
Date: Mon, 19 Mar 2007 17:25:20 +0200 [thread overview]
Message-ID: <45FEAB60.7090704@argo.co.il> (raw)
In-Reply-To: <MDEHLPKNGKAHNMBLJOLKGEMBCFAC.davids@webmaster.com>
[what happened to the 'To' header?]
David Schwartz wrote:
>> I didn't suggest adding any unfairness! I suggested being fair by
>> user/job/process instead of being fair by thread (which is actually
>> unfair as it favors multi threaded processes over single threaded
>> processes).
>>
>
> Wouldn't that be unfair because it favors multi-user approaches over
> single-user approaches with the same number of processes?
>
> Consider two otherwise equivalent web server designs. They both use a helper
> process owned by the user who owns the file the web server is sending. One
> does a lot of work in the helper process, the other does very little. A
> "fair by user" scheduler would give the approach that puts more work in the
> helper process more CPU than the one that puts little work in the helper
> process.
>
A fairly contrived example, but I see your point. Of course any system
can be broken. I think that user-level scheduling is good for real
multi user systems, where 'user' means a person, not an artificial
entity. It's also good for a multi application server, where typically
each service runs (or can be made to run) as a separate user.
> Being fair by user builds lots of assumptions into the scheduler. When
> they're not true, the scheduler becomes sub-optimal. For example, consider a
> web server that runs two very important tools, 'foo' and 'bar'. Rather than
> running them as root, they run as users 'foo' and 'bar' for security. "Fair
> to user" would mean that just because most other people are using 'foo', I
> get less CPU when I try to use 'foo', because the OS doesn't know the "real
> user", just the fake user who owns the process -- a security decision that
> has no relationship to fairness. This would be handled perfectly by a "fair
> to process" approach.
>
Perhaps we need a scheduling class instead, defaulting to each user
being in its own class, and system processes in another (or maybe more
than one) class. Root can configure the relative priorities of the
various classes according to preferences.
> As for favoring multi-threaded processes over single-threaded processes,
> sometimes that's what you want. Consider two servers, one using thread per
> job the other using process per job. Does it make sense to give the "process
> per job" server as much CPU to do a single task as the "thread per job"
> server gets for all the clients it's dealing with?
>
>
That's why I wanted the job abstraction, which currently isn't
communicated to the kernel (or at least not well). Within a user's
quota, jobs are scheduled fairly.
> It's really more important that the scheduler be tunable and predictable.
> That way, we can tell it what we want and get it. But the scheduler cannot
> read our minds.
>
For multiuser systems, it also has to provide predictable response to
unpredictable loads. RSDL accomplishes part of this by removing
heuristics. User-level scheduling does more by limiting the impact of a
single user to 1/N of the system's cpu capacity, and similarly limits
the impact of a single job to 1/number_of_active_jobs_for_this_user.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2007-03-19 15:25 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
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 [this message]
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=45FEAB60.7090704@argo.co.il \
--to=avi@argo.co.il \
--cc=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.