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 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.