[PATCH 0/6] sched/fair: Compute capacity invariant load/utilization tracking

From: Morten Rasmussen
Date: Fri Aug 14 2015 - 12:20:13 EST


Per-entity load-tracking currently only compensates for frequency scaling for
utilization tracking. This patch set extends this compensation to load as well,
and adds compute capacity (different microarchitectures and/or max
frequency/P-state) invariance to utilization. The former prevents suboptimal
load-balancing decisions when cpus run at different frequencies, while the
latter ensures that utilization (sched_avg.util_avg) can be compared across
cpus and that utilization can be compared directly to cpu capacity to determine
if the cpu is overloaded.

Note that this patch only contains the scheduler patches, the architecture
specific implementations of arch_scale_{freq, cpu}_capacity() will be posted
separately later.

The patches have posted several times before. Most recently as part of the
energy-model driven scheduling RFCv5 patch set [1] (patch #2,4,6,8-12). That
RFC also contains patches for the architecture specific side. In this posting
the commit messages have been updated and the patches have been rebased on a
more recent tip/sched/core that includes Yuyang's rewrite which made some of
the previously posted patches redundant.

Target: ARM TC2 A7-only (x3)
Test: hackbench -g 25 --threads -l 10000

Before After
315.545 313.408 -0.68%

Target: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
Test: hackbench -g 25 --threads -l 1000 (avg of 10)

Before After
6.4643 6.395 -1.07%

[1] http://www.kernelhub.org/?p=2&msg=787634

Dietmar Eggemann (4):
sched/fair: Make load tracking frequency scale-invariant
sched/fair: Make utilization tracking cpu scale-invariant
sched/fair: Name utilization related data and functions consistently
sched/fair: Get rid of scaling utilization by capacity_orig

Morten Rasmussen (2):
sched/fair: Convert arch_scale_cpu_capacity() from weak function to
#define
sched/fair: Initialize task load and utilization before placing task
on rq

include/linux/sched.h | 8 ++--
kernel/sched/core.c | 4 +-
kernel/sched/fair.c | 109 +++++++++++++++++++++++-------------------------
kernel/sched/features.h | 5 ---
kernel/sched/sched.h | 11 +++++
5 files changed, 69 insertions(+), 68 deletions(-)

--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/