[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/