[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46255D5B.3000008@bigpond.net.au>
Date: Wed, 18 Apr 2007 09:50:51 +1000
From: Peter Williams <pwil3058@...pond.net.au>
To: Chris Friesen <cfriesen@...tel.com>
CC: William Lee Irwin III <wli@...omorphy.com>,
Ingo Molnar <mingo@...e.hu>, Matt Mackall <mpm@...enic.com>,
Con Kolivas <kernel@...ivas.org>, linux-kernel@...r.kernel.org,
Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Nick Piggin <npiggin@...e.de>, Mike Galbraith <efault@....de>,
Arjan van de Ven <arjan@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [Announce] [patch] Modular Scheduler Core and Completely Fair
Scheduler [CFS]
Chris Friesen wrote:
> Peter Williams wrote:
>> Chris Friesen wrote:
>>> Scuse me if I jump in here, but doesn't the load balancer need some
>>> way to figure out a) when to run, and b) which tasks to pull and
>>> where to push them?
>
>> Yes but both of these are independent of the scheduler discipline in
>> force.
>
> It is not clear to me that this is always the case, especially once you
> mix in things like resource groups.
>
>> If
>> the load balancer manages to keep the weighted (according to static
>> priority) load and distribution of priorities within the loads on the
>> CPUs roughly equal and the scheduler does a good job of ensuring
>> fairness, interactive responsiveness etc. for the tasks within a CPU
>> then the result will be good system performance within the constraints
>> set by the sys admins use of real time priorities and nice.
>
> Suppose I have a really high priority task running. Another very high
> priority task wakes up and would normally preempt the first one.
> However, there happens to be another cpu available. It seems like it
> would be a win if we moved one of those tasks to the available cpu
> immediately so they can both run simultaneously. This would seem to
> require some communication between the scheduler and the load balancer.
Not really the load balancer can do this on its own AND the decision
should be based on the STATIC priority of the task being woken.
>
> Certainly the above design could introduce a lot of context switching.
> But if my goal is a scheduler that minimizes latency (even at the cost
> of throughput) then that's an acceptable price to pay.
It would actually probably reduce context switching as putting the woken
task on the best CPU at wake up means you don't have to move it later
on. The wake up code already does a little bit in this direction when
it chooses which CPU to put a newly woken task on but could do more --
the only real cost would be the cost of looking at more candidate CPUs
than it currently does.
Peter
--
Peter Williams pwil3058@...pond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-
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