From: Ingo Molnar <mingo@elte.hu>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: Dmitry Adamushko <dmitry.adamushko@gmail.com>,
Peter Williams <pwil3058@bigpond.net.au>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [patch] CFS scheduler, -v12
Date: Mon, 21 May 2007 10:57:03 +0200 [thread overview]
Message-ID: <20070521085703.GA18755@elte.hu> (raw)
In-Reply-To: <20070521082926.GH19966@holomorphy.com>
* William Lee Irwin III <wli@holomorphy.com> wrote:
> cfs should probably consider aggregate lag as opposed to aggregate
> weighted load. Mainline's convergence to proper CPU bandwidth
> distributions on SMP (e.g. N+1 tasks of equal nice on N cpus) is
> incredibly slow and probably also fragile in the presence of arrivals
> and departures partly because of this. [...]
hm, have you actually tested CFS before coming to this conclusion?
CFS is fair even on SMP. Consider for example the worst-case
3-tasks-on-2-CPUs workload on a 2-CPU box:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2658 mingo 20 0 1580 248 200 R 67 0.0 0:56.30 loop
2656 mingo 20 0 1580 252 200 R 66 0.0 0:55.55 loop
2657 mingo 20 0 1576 248 200 R 66 0.0 0:55.24 loop
66% of CPU time for each task. The 'TIME+' column shows a 2% spread
between the slowest and the fastest loop after just 1 minute of runtime
(and the spread gets narrower with time). Mainline does a 50% / 50% /
100% split:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3121 mingo 25 0 1584 252 204 R 100 0.0 0:13.11 loop
3120 mingo 25 0 1584 256 204 R 50 0.0 0:06.68 loop
3119 mingo 25 0 1584 252 204 R 50 0.0 0:06.64 loop
and i fixed that in CFS.
or consider a sleepy workload like massive_intr, 3-tasks-on-2-CPUs:
europe:~> head -1 /proc/interrupts
CPU0 CPU1
europe:~> ./massive_intr 3 10
002623 00000722
002621 00000720
002622 00000721
Or a 5-tasks-on-2-CPS workload:
europe:~> ./massive_intr 5 50
002649 00002519
002653 00002492
002651 00002478
002652 00002510
002650 00002478
that's around 1% of spread.
load-balancing is a performance vs. fairness tradeoff so we wont be able
to make it precisely fair because that's hideously expensive on SMP
(barring someone showing a working patch of course) - but in CFS i got
quite close to having it very fair in practice.
> [...] Tong Li's DWRR repairs the deficit in mainline by synchronizing
> epochs or otherwise bounding epoch dispersion. This doesn't directly
> translate to cfs. In cfs cpu should probably try to figure out if its
> aggregate lag (e.g. via minimax) is above or below average, and push
> to or pull from the other half accordingly.
i'd first like to see a demonstration of a problem to solve, before
thinking about more complex solutions ;-)
Ingo
next prev parent reply other threads:[~2007-05-21 8:57 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-13 15:38 [patch] CFS scheduler, -v12 Ingo Molnar
2007-05-16 2:04 ` Peter Williams
2007-05-16 8:08 ` Ingo Molnar
2007-05-16 23:42 ` Peter Williams
[not found] ` <20070516063625.GA9058@elte.hu>
2007-05-17 23:45 ` Peter Williams
[not found] ` <20070518071325.GB28702@elte.hu>
2007-05-18 13:11 ` Peter Williams
2007-05-18 13:26 ` Peter Williams
2007-05-19 13:27 ` Dmitry Adamushko
2007-05-20 1:41 ` Peter Williams
2007-05-21 8:29 ` William Lee Irwin III
2007-05-21 8:57 ` Ingo Molnar [this message]
2007-05-21 12:08 ` William Lee Irwin III
2007-05-22 16:48 ` Chris Friesen
2007-05-22 20:15 ` Ingo Molnar
2007-05-22 20:49 ` Chris Friesen
2007-05-21 15:25 ` Dmitry Adamushko
2007-05-21 23:51 ` Peter Williams
2007-05-22 4:47 ` Peter Williams
2007-05-22 12:03 ` Peter Williams
2007-05-24 7:43 ` Peter Williams
2007-05-24 16:45 ` Siddha, Suresh B
2007-05-24 23:23 ` Peter Williams
2007-05-29 20:45 ` Siddha, Suresh B
2007-05-29 23:54 ` Peter Williams
2007-05-30 0:50 ` Siddha, Suresh B
2007-05-30 2:18 ` Peter Williams
2007-05-30 4:42 ` Siddha, Suresh B
2007-05-30 6:28 ` Peter Williams
2007-05-31 1:49 ` Peter Williams
2007-05-22 11:52 ` Dmitry Adamushko
2007-05-23 0:10 ` Peter Williams
2007-05-18 0:18 ` Bill Huey
2007-05-18 1:01 ` Bill Huey
2007-05-18 4:13 ` William Lee Irwin III
2007-05-18 7:31 ` Ingo Molnar
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=20070521085703.GA18755@elte.hu \
--to=mingo@elte.hu \
--cc=dmitry.adamushko@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pwil3058@bigpond.net.au \
--cc=wli@holomorphy.com \
/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