[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070419031807.GA24512@wotan.suse.de>
Date: Thu, 19 Apr 2007 05:18:07 +0200
From: Nick Piggin <npiggin@...e.de>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Matt Mackall <mpm@...enic.com>,
William Lee Irwin III <wli@...omorphy.com>,
Peter Williams <pwil3058@...pond.net.au>,
Mike Galbraith <efault@....de>,
Con Kolivas <kernel@...ivas.org>, Ingo Molnar <mingo@...e.hu>,
ck list <ck@....kolivas.org>,
Bill Huey <billh@...ppy.monkey.org>,
linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
Arjan van de Ven <arjan@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS]
On Wed, Apr 18, 2007 at 07:48:21AM -0700, Linus Torvalds wrote:
>
>
> On Wed, 18 Apr 2007, Matt Mackall wrote:
> >
> > Why is X special? Because it does work on behalf of other processes?
> > Lots of things do this. Perhaps a scheduler should focus entirely on
> > the implicit and directed wakeup matrix and optimizing that
> > instead[1].
>
> I 100% agree - the perfect scheduler would indeed take into account where
> the wakeups come from, and try to "weigh" processes that help other
> processes make progress more. That would naturally give server processes
> more CPU power, because they help others
>
> I don't believe for a second that "fairness" means "give everybody the
> same amount of CPU". That's a totally illogical measure of fairness. All
> processes are _not_ created equal.
I believe that unless the kernel is told of these inequalities, then it
must schedule fairly.
And yes, by fairly, I mean fairly among all threads as a base resource
class, because that's what Linux has always done (and if you aggregate
into higher classes, you still need that per-thread scheduling).
So I'm not excluding extra scheduling classes like per-process, per-user,
but among any class of equal schedulable entities, fair scheduling is the
only option because the alternative of unfairness is just insane.
> That said, even trying to do "fairness by effective user ID" would
> probably already do a lot. In a desktop environment, X would get as much
> CPU time as the user processes, simply because it's in a different
> protection domain (and that's really what "effective user ID" means: it's
> not about "users", it's really about "protection domains").
>
> And "fairness by euid" is probably a hell of a lot easier to do than
> trying to figure out the wakeup matrix.
Well my X server has an euid of root, which would mean my X clients can
cause X to do work and eat into root's resources. Or as Ingo said, X
may not be running as root. Seems like just another hack to try to
implicitly solve the X problem and probably create a lot of others
along the way.
All fairness issues aside, in the context of keeping a very heavily
loaded desktop interactive, X is special. That you are trying to think
up funny rules that would implicitly give X better priority is kind of
indicative of that.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists