From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 2/8] Documentation: arm: define DT cpu capacity bindings
Date: Tue, 15 Dec 2015 18:39:33 +0000 [thread overview]
Message-ID: <20151215183933.GC8568@leverpostej> (raw)
In-Reply-To: <CAKfTPtBzWcNHx+Fi7hUabNpPsd1thFAkPnLcpsnqbQp6Qq24cQ@mail.gmail.com>
On Tue, Dec 15, 2015 at 06:47:20PM +0100, Vincent Guittot wrote:
> On 15 December 2015 at 18:15, Mark Rutland <mark.rutland@arm.com> wrote:
> > On Tue, Dec 15, 2015 at 05:59:34PM +0100, Vincent Guittot wrote:
> >> On 15 December 2015 at 17:41, Mark Rutland <mark.rutland@arm.com> wrote:
> >> > On Tue, Dec 15, 2015 at 04:23:18PM +0000, Catalin Marinas wrote:
> >> >> On Tue, Dec 15, 2015 at 03:57:37PM +0000, Mark Rutland wrote:
> >> >> > On Tue, Dec 15, 2015 at 03:46:51PM +0000, Juri Lelli wrote:
> >> >> > > On 15/12/15 15:32, Mark Rutland wrote:
> >> >> > > > On Tue, Dec 15, 2015 at 03:08:13PM +0000, Mark Brown wrote:
> >> >> > > > > 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.
> >> >> > > >
> >> >> > > > My expectation is that if a ballpark figure is good enough, it should be
> >> >> > > > possible to implement something trivial like bogomips / loop_per_jiffy
> >> >> > > > calculation.
> >> >> > >
> >> >> > > I didn't really followed that, so I might be wrong here, but isn't
> >> >> > > already happened a discussion about how we want/like to stop exposing
> >> >> > > bogomips info or rely on it for anything but in kernel delay loops?
> >> >> >
> >> >> > I meant that we could have a benchmark of that level of complexity,
> >> >> > rather than those specific values.
> >> >>
> >> >> Or we could simply let user space use whatever benchmarks or hard-coded
> >> >> values it wants and set the capacity via sysfs (during boot). By
> >> >> default, the kernel would assume all CPUs equal.
> >> >
> >> > I assume that a userspace override would be available regardless of
> >> > whatever mechanism the kernel uses to determine relative
> >> > performance/effinciency.
> >>
> >> Don't you think that if we let a complete latitude to the userspace
> >> to set whatever it wants, it will be used to abuse the kernel (and the
> >> scheduler in particular ) and that this will finish in a real mess to
> >> understand what is wrong when a task is not placed where it should be.
> >
> > I'm not sure I follow what you mean by "abuse" here. Userspace currently
> > can force the scheduler to make sub-optimal decisions in a number of
> > ways, e.g.
> >
> > * Hot-unplugging the preferred CPUs
> > * Changing a task's affinity mask
> > * Setting the nice value of a task
> > * Using rlimits and/or cgroups
> > * Using a cpufreq governor
> > * Fork-bombing
>
> All these are parameters have a meaning (except the last one). By
> abusing i mean setting the capacity of the most powerful cpu to 1 for
> no good reason except to abuse the scheduler so the latter will not
> put that much tasks on it just because the current running use case
> is more efficient if the big core is not used.
Surely it's better to allow them to "abuse" the kernel in that manner
than to place otherwise insane values into a DT? Especially if they can
later change to a sane value?
For that particular case it's easy to hotplug out the big core, or to
set the affinity of tasks to avoid it.
Mark.
next prev parent reply other threads:[~2015-12-15 18:39 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
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 [this message]
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=20151215183933.GC8568@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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