From: Morten Rasmussen <morten.rasmussen@arm.com>
To: peterz@infradead.org, mingo@redhat.com
Cc: dietmar.eggemann@arm.com, vincent.guittot@linaro.org,
pjt@google.com, bsegall@google.com, mturquette@linaro.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
Morten Rasmussen <morten.rasmussen@arm.com>
Subject: [RFC PATCH 00/10] sched: frequency and cpu invariant per-entity load-tracking and other load-tracking bits
Date: Tue, 2 Dec 2014 14:06:22 +0000 [thread overview]
Message-ID: <1417529192-11579-1-git-send-email-morten.rasmussen@arm.com> (raw)
Numerous proposals for various changes to per-entity load-tracking have
been posted in the past to introduce various forms of scale invariance,
utilization tracking, and taking blocked load into account. This RFC
patch set has attempts to merge the features of these proposals.
The patch set is based on top of Vincent's cpu capacity and usage patch
set [1] which introduces the scheduler side of frequency invariant
utilization tracking. This patch set adds:
Patches:
1: Adds frequency scale invariance to runnable load tracking
(weighted_cpuload() and friends). Like utilization in [1], load is now
also scaled with frequency relative to the max frequency.
2: Adds cpu scale invariance to both load and utilization. This second
scaling compensates for differences in max performance between cpus,
e.g. cpus with different max OPPs or different cpu uarchs (ARM
big.LITTLE).
3-5: ARM arch implementation of arch_scale_freq_capacity() to enable
frequency invariance of both utilization and load.
6: Update ARM arch implementation of arch_scale_cpu_capacity().
7: Remove scaling of cpu usage by capacity_orig. With introduction of
cpu scale-invariance the per-entity tracking already does this scaling.
Experimental patches:
8: Add tracking of blocked utilization (usage) to the utilization
introduced in [1].
9: Change get_cpu_usage() to include blocked utilization (usage).
10: Change weighted_cpuload() to include blocked load. The implications of
this change needs further testing and very likely more changes.
The last three patches are quite likely to cause some trouble and
require some modifications to the users of get_cpu_usage() and
weighted_cpuload(). An audit of the load-balance code is needed. The
blocked load/utilization patches should be considered experimental, but
they are part of what is needed to add invariance and blocked
load/utilization to per-entity load-tracking.
The purpose of this whole exercise is to get more accurate load and
utilization tracking for systems with frequency scaling and/or cpus with
different uarchs.
[1] https://lkml.org/lkml/2014/11/3/535
Dietmar Eggemann (5):
sched: Make load tracking frequency scale-invariant
sched: Make usage and load tracking cpu scale-invariant
ARM: vexpress: Add CPU clock-frequencies to TC2 device-tree
arm: Cpu invariant scheduler load-tracking support
sched: Get rid of scaling usage by cpu_capacity_orig
Morten Rasmussen (5):
cpufreq: Architecture specific callback for frequency changes
arm: Frequency invariant scheduler load-tracking support
sched: Track blocked utilization contributions
sched: Include blocked utilization in usage tracking
sched: Include blocked load in weighted_cpuload
arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 5 ++
arch/arm/kernel/topology.c | 97 +++++++++++++++++-------------
drivers/cpufreq/cpufreq.c | 10 ++-
kernel/sched/fair.c | 91 ++++++++++++++++++++++------
kernel/sched/sched.h | 8 ++-
5 files changed, 147 insertions(+), 64 deletions(-)
--
1.9.1
next reply other threads:[~2014-12-02 14:06 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-02 14:06 Morten Rasmussen [this message]
2014-12-02 14:06 ` [RFC PATCH 01/10] sched: Make load tracking frequency scale-invariant Morten Rasmussen
2014-12-17 8:28 ` Vincent Guittot
2014-12-02 14:06 ` [RFC PATCH 02/10] sched: Make usage and load tracking cpu scale-invariant Morten Rasmussen
2014-12-18 9:41 ` Vincent Guittot
2014-12-30 15:05 ` Morten Rasmussen
2014-12-02 14:06 ` [RFC PATCH 03/10] cpufreq: Architecture specific callback for frequency changes Morten Rasmussen
2014-12-17 7:56 ` Vincent Guittot
2014-12-02 14:06 ` [RFC PATCH 04/10] arm: Frequency invariant scheduler load-tracking support Morten Rasmussen
2014-12-02 14:06 ` [RFC PATCH 05/10] ARM: vexpress: Add CPU clock-frequencies to TC2 device-tree Morten Rasmussen
2014-12-02 14:06 ` [RFC PATCH 06/10] arm: Cpu invariant scheduler load-tracking support Morten Rasmussen
2014-12-02 14:06 ` [RFC PATCH 07/10] sched: Get rid of scaling usage by cpu_capacity_orig Morten Rasmussen
2014-12-02 14:06 ` [RFC PATCH 08/10] sched: Track blocked utilization contributions Morten Rasmussen
2014-12-17 8:12 ` Vincent Guittot
2014-12-22 9:43 ` Du, Yuyang
2014-12-02 14:06 ` [RFC PATCH 09/10] sched: Include blocked utilization in usage tracking Morten Rasmussen
2014-12-17 8:22 ` Vincent Guittot
2014-12-02 14:06 ` [RFC PATCH 10/10] sched: Include blocked load in weighted_cpuload Morten Rasmussen
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=1417529192-11579-1-git-send-email-morten.rasmussen@arm.com \
--to=morten.rasmussen@arm.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mturquette@linaro.org \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=vincent.guittot@linaro.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;
as well as URLs for NNTP newsgroup(s).