On Wed, 2007-04-18 at 05:56 +0200, Nick Piggin wrote:
Definitely. Using constants with no consideration of what else is
running is what causes the fairness mechanism in mainline to break down
under load.
(aside: What I was experimenting with before this new scheduler came
along was to turn the sleep_avg thing into an off-cpu period thing. Once
a time slice begins execution [runqueue wait doesn't count], that task
has the right to use it's slice in one go, and _anything_ that knocked
it off the cpu added to it's credit. Knocking someone else off detracts
from credit, and to get to the point where you can knock others off
costs you stored credit proportional to the dynamic priority you attain
by using it. All tasks that have credit stay active, no favorites.)
-Mike
-