Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755647AbbHNQUJ (ORCPT ); Fri, 14 Aug 2015 12:20:09 -0400 Received: from foss.arm.com ([217.140.101.70]:39303 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755393AbbHNQUF (ORCPT ); Fri, 14 Aug 2015 12:20:05 -0400 From: Morten Rasmussen To: peterz@infradead.org, mingo@redhat.com Cc: vincent.guittot@linaro.org, daniel.lezcano@linaro.org, Dietmar Eggemann , yuyang.du@intel.com, mturquette@baylibre.com, rjw@rjwysocki.net, Juri Lelli , sgurrappadi@nvidia.com, pang.xunlei@zte.com.cn, linux-kernel@vger.kernel.org, Morten Rasmussen Subject: [PATCH 0/6] sched/fair: Compute capacity invariant load/utilization tracking Date: Fri, 14 Aug 2015 17:23:08 +0100 Message-Id: <1439569394-11974-1-git-send-email-morten.rasmussen@arm.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2439 Lines: 61 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/