From: Mark Brown <broonie@kernel.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Juri Lelli <juri.lelli@arm.com>, Rob Herring <robh@kernel.org>,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
peterz@infradead.org, vincent.guittot@linaro.org,
linux@arm.linux.org.uk, sudeep.holla@arm.com,
lorenzo.pieralisi@arm.com, catalin.marinas@arm.com,
will.deacon@arm.com, morten.rasmussen@arm.com,
dietmar.eggemann@arm.com, Pawel Moll <pawel.moll@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Maxime Ripard <maxime.ripard@free-electrons.com>,
Olof Johansson <olof@lixom.net>,
Gregory CLEMENT <gregory.clement@free-electrons.com>,
Paul Walmsley <paul@pwsan.com>,
Linus Walleij <linus.walleij@linaro.org>,
Chen-Yu Tsai <wens@csie.org>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Subject: Re: [RFC PATCH 2/8] Documentation: arm: define DT cpu capacity bindings
Date: Tue, 15 Dec 2015 15:08:13 +0000 [thread overview]
Message-ID: <20151215150813.GZ5727@sirena.org.uk> (raw)
In-Reply-To: <20151215140135.GI31299@leverpostej>
[-- Attachment #1: Type: text/plain, Size: 2543 bytes --]
On Tue, Dec 15, 2015 at 02:01:36PM +0000, Mark Rutland wrote:
> I really don't want to see a table of magic numbers in the kernel.
Right, there's pitfalls there too although not being part of an ABI
does make them more manageable.
One thing it's probably helpful to establish here is how much the
specific numbers are going to matter in the grand scheme of things. If
the specific numbers *are* super important then nobody is going to want
to touch them as they'll be prone to getting tweaked. If instead the
numbers just need to be ballpark accurate so the scheduler starts off in
roughly the right place and the specific numbers don't matter it's a lot
easier and having a table in the kernel until we think of something
better (if that ever happens) gets a lot easier.
My expectation is that we just need good enough, not perfect, and that
seems to match what Juri is saying about the expectation that most of
the fine tuning is done via other knobs.
> The relative performance and efficiency of cores will vary depending on
> uArch-specific configuration (e.g. sizing of L1/L2 caches) in addition
> to general uArch differences, and integration too (e.g. if the memory
> system gives priority to one cluster over another for whatever reason).
> I've heard of pseudo-heterogeneous platforms with different
> configuration of the same uArch across clusters.
> We also don't necessarily have the CPU clock frequencies, or the ability
> to scale them. Maybe we simply give up in that case, though.
These variables all sound like the sort of thing we can get people to
put in the DT where they matter, and the more we talk about multiple
subtle variables feeding into a single number the more this starts to
sound like tuning (with all the problems that brings, especially when
you're into things like the behaviour with the clusters competing for
resources). Who knows, at some point the scheduler may even want to
directly act on some of these parameters?
> If we cannot rely on external information, and want this information to
> be derived by the kernel, then we need to perform some dynamic
> benchmark. That would work for future CPUs the kernel knows nothing
> about yet, and would cater for the pseudo-heterogeneous cases too.
Runtime benchmarking (or gradual tuning based on observed performance of
the scheduler) would work as well of course. I'd expect something like
that to be part of any end point we get to here, the more the system is
able to self tune the better.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2015-12-15 15:08 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-23 14:28 [RFC PATCH 0/8] CPUs capacity information for heterogeneous systems Juri Lelli
2015-11-23 14:28 ` [RFC PATCH 1/8] ARM: initialize cpu_scale to its default Juri Lelli
2015-11-30 11:13 ` Vincent Guittot
2015-11-23 14:28 ` [RFC PATCH 2/8] Documentation: arm: define DT cpu capacity bindings Juri Lelli
2015-11-24 2:06 ` Rob Herring
2015-11-24 10:54 ` Juri Lelli
2015-11-30 9:59 ` Vincent Guittot
2015-12-01 11:20 ` Juri Lelli
2015-12-10 14:14 ` Dietmar Eggemann
2015-12-11 10:09 ` Juri Lelli
2015-12-10 15:30 ` Mark Brown
2015-12-10 17:58 ` Juri Lelli
2015-12-11 17:49 ` Mark Brown
2015-12-14 12:36 ` Juri Lelli
2015-12-14 16:59 ` Mark Brown
2015-12-15 12:22 ` Juri Lelli
2015-12-15 13:39 ` Mark Brown
2015-12-15 14:01 ` Mark Rutland
2015-12-15 14:24 ` Juri Lelli
2015-12-15 14:50 ` Mark Rutland
2015-12-15 15:36 ` Juri Lelli
2015-12-15 15:08 ` Mark Brown [this message]
2015-12-15 15:32 ` Mark Rutland
2015-12-15 15:46 ` Juri Lelli
2015-12-15 15:57 ` Mark Rutland
2015-12-15 16:23 ` Catalin Marinas
2015-12-15 16:41 ` Mark Rutland
2015-12-15 16:59 ` Vincent Guittot
2015-12-15 17:15 ` Mark Rutland
2015-12-15 17:47 ` Vincent Guittot
2015-12-15 18:39 ` Mark Rutland
2015-12-15 17:17 ` Mark Brown
2015-12-15 17:28 ` Mark Rutland
2015-12-15 17:45 ` Mark Brown
2015-12-15 18:10 ` Mark Rutland
2015-12-15 18:45 ` Mark Brown
2015-12-17 9:07 ` Juri Lelli
2015-12-15 13:55 ` Vincent Guittot
2015-11-23 14:28 ` [RFC PATCH 3/8] arm: parse cpu capacity from DT Juri Lelli
2015-12-10 14:14 ` Dietmar Eggemann
2015-12-11 10:12 ` Juri Lelli
2015-11-23 14:28 ` [RFC PATCH 4/8] arm, dts: add TC2 cpu capacity information Juri Lelli
2015-11-23 14:28 ` [RFC PATCH 5/8] arm64: parse cpu capacity from DT Juri Lelli
2015-12-10 14:15 ` Dietmar Eggemann
2015-12-11 10:07 ` Juri Lelli
2015-11-23 14:28 ` [RFC PATCH 6/8] arm64, dts: add Juno cpu capacity information Juri Lelli
2015-11-23 14:28 ` [RFC PATCH 7/8] arm: add sysfs cpu_capacity attribute Juri Lelli
2015-11-23 14:28 ` [RFC PATCH 8/8] arm64: " Juri Lelli
2015-12-10 14:15 ` Dietmar Eggemann
2015-12-10 15:59 ` Mark Brown
2015-12-10 18:01 ` Juri Lelli
2015-12-11 17:54 ` Mark Brown
2015-12-07 12:02 ` [RFC PATCH 0/8] CPUs capacity information for heterogeneous systems Juri Lelli
2015-12-07 12:11 ` Russell King - ARM Linux
2015-12-07 12:36 ` Juri Lelli
2015-12-07 13:18 ` Russell King - ARM Linux
2015-12-07 15:41 ` Juri Lelli
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=20151215150813.GZ5727@sirena.org.uk \
--to=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=dietmar.eggemann@arm.com \
--cc=galak@codeaurora.org \
--cc=gregory.clement@free-electrons.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=juri.lelli@arm.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=maxime.ripard@free-electrons.com \
--cc=morten.rasmussen@arm.com \
--cc=olof@lixom.net \
--cc=paul@pwsan.com \
--cc=pawel.moll@arm.com \
--cc=peterz@infradead.org \
--cc=robh@kernel.org \
--cc=sudeep.holla@arm.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=vincent.guittot@linaro.org \
--cc=wens@csie.org \
--cc=will.deacon@arm.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
all inboxes | Powered by JetHome®