From patchwork Tue Dec 5 17:10:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Bellasi X-Patchwork-Id: 120715 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp6003677qgn; Tue, 5 Dec 2017 09:10:37 -0800 (PST) X-Google-Smtp-Source: AGs4zMZAO8QhE6Mc+d1C8qwoUJy/a00XTR7P3wbJXW42+pfXlADGqs2kfNoPYXIOf0LgdBYJ6eGd X-Received: by 10.99.116.17 with SMTP id p17mr17809611pgc.385.1512493837190; Tue, 05 Dec 2017 09:10:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512493837; cv=none; d=google.com; s=arc-20160816; b=lpJtbYrF6m51AT8DeHrw9KtY/eTW/jQVw/Ne9oIhw//kJ9UHsuXrgyuukyEjnm701r PpcSvcsgAi1xNhcyvo4VsAO7ftVAyaWRjHFRwsH+H8jCLT1EOMPEPtlrzidUbnaUGNKV fYCgS/2M+2oVZH9tCZJGrEgeovMaoccH2uqqxtyxoE4TeUcYXIuy2H/49XVqSdyiS8Op VYa1tbyudH6lan62xC5bvH5SQybwU5/gZPHp1dO2QB4cACo2KvdI7TL616QgLfR38IiB btapMzFJeNTwEt1DyY8saMFzKIZEXuO7flzTFb1SM4H4+XY7rcCbNjKHlj70ppyWxKeK 0Pog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=WBDB0+7pnzKZnb795SaA8tkxS31eyBbW1Rj6gPbjWMQ=; b=cThSGAar/2bATIKxHQktBz2FNuGeo4r3Ln0LHYn/qbIox0vYO3ojagJ/JmEJsUUQrC 6OBFYHp9k6RVIDBmg17k+gMKp6ITwjHPZyn0JwTgpXTb4xISpRI9ulDYi98T4GzxOINI cbtNdb7HYZmMu4hzUtVOLKOMqkbOUSFwyJJUP8wZOwVakgNew3OLGvanq3CmTdLaQwaU EAT/45JsP6JBOldv+xgUAET7yIAgxptNj5zUu6tzcCQSlB9MiR+2Xpufxju+lU4ofhWA nfb+wZxjp0xFwrUCgvhXybCEI0nkxpU07OeLTBgWA0SRyQosZ5wvF+ffeoYyIxalNIf8 vusA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h62si319485pgc.764.2017.12.05.09.10.36; Tue, 05 Dec 2017 09:10:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752766AbdLERKf (ORCPT + 11 others); Tue, 5 Dec 2017 12:10:35 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:52268 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752357AbdLERKf (ORCPT ); Tue, 5 Dec 2017 12:10:35 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A415B1435; Tue, 5 Dec 2017 09:10:34 -0800 (PST) Received: from e110439-lin.cambridge.arm.com (e110439-lin.cambridge.arm.com [10.1.210.68]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 491403F246; Tue, 5 Dec 2017 09:10:32 -0800 (PST) From: Patrick Bellasi To: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Cc: Ingo Molnar , Peter Zijlstra , "Rafael J . Wysocki" , Viresh Kumar , Vincent Guittot , Paul Turner , Dietmar Eggemann , Morten Rasmussen , Juri Lelli , Todd Kjos , Joel Fernandes Subject: [PATCH v2 0/4] Utilization estimation (util_est) for FAIR tasks Date: Tue, 5 Dec 2017 17:10:14 +0000 Message-Id: <20171205171018.9203-1-patrick.bellasi@arm.com> X-Mailer: git-send-email 2.14.1 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org This is a respin of: https://lkml.org/lkml/2017/11/9/546 which has been rebased on v4.15-rc2 to have util_est now working on top of the recent PeterZ's: [PATCH -v2 00/18] sched/fair: A bit of a cgroup/PELT overhaul The aim of this series is to improve some PELT behaviors to make it a better fit for the scheduling of tasks common in embedded mobile use-cases, without affecting other classes of workloads. A complete description of these behaviors has been presented in the previous RFC [1] and further discussed during the last OSPM Summit [2] as well as during the last two LPCs. This series presents an implementation which improves the initial RFC's prototype. Specifically, this new implementation has been verified to not impact in any noticeable way the performance of: perf bench sched messaging --pipe --thread --group 8 --loop 50000 when running 30 iterations on a dual socket, 10 cores (20 threads) per socket Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz, whit the sched_feat(SCHED_UTILEST) set to False. With this feature enabled, the measured overhead is in the range of ~1% on the same HW/SW test configuration. That's the main reason why this sched feature is disabled by default. A possible improvement can be the addition of a KConfig option to toggle the sched_feat default value on systems where a 1% overhead on hackbench is not a concern, e.g. mobile systems, especially considering the benefits coming from estimated utilization on workloads of interest. >From a functional standpoint, this implementation shows a more stable utilization signal, compared to mainline, when running synthetics benchmarks describing a set of interesting target use-cases. This allows for a better selection of the target CPU as well as a faster selection of the most appropriate OPP. A detailed description of the used functional tests has been already covered in the previous RFC [1]. This series is based on v4.15-rc2 and is composed of four patches: 1) a small refactoring preparing the ground 2) introducing the required data structures to track util_est of both TASKs and CPUs 3) make use of util_est in the wakeup and load balance paths 4) make use of util_est in schedutil for frequency selection Cheers Patrick .:: References ============== [1] https://lkml.org/lkml/2017/8/25/195 [2] slides: http://retis.sssup.it/ospm-summit/Downloads/OSPM_PELT_DecayClampingVsUtilEst.pdf video: http://youtu.be/adnSHPBGS-w Changes v1->v2: - rebase on top of v4.15-rc2 - tested that overhauled PELT code does not affect the util_est Patrick Bellasi (4): sched/fair: always used unsigned long for utilization sched/fair: add util_est on top of PELT sched/fair: use util_est in LB and WU paths sched/cpufreq_schedutil: use util_est for OPP selection include/linux/sched.h | 21 +++++ kernel/sched/cpufreq_schedutil.c | 6 +- kernel/sched/debug.c | 4 + kernel/sched/fair.c | 184 ++++++++++++++++++++++++++++++++++++--- kernel/sched/features.h | 5 ++ kernel/sched/sched.h | 1 + 6 files changed, 209 insertions(+), 12 deletions(-) -- 2.14.1