From patchwork Thu Nov 9 16:41:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Bellasi X-Patchwork-Id: 118461 Delivered-To: patch@linaro.org Received: by 10.140.22.164 with SMTP id 33csp6815788qgn; Thu, 9 Nov 2017 08:41:36 -0800 (PST) X-Google-Smtp-Source: ABhQp+TI6KOv2UybfOpXGs/xugbv+JMS75fMu6Yh5Kzol2BGMxE6aE/0di7zKB27LhSKD3lB9Cmm X-Received: by 10.84.240.136 with SMTP id z8mr1002486plk.240.1510245696162; Thu, 09 Nov 2017 08:41:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510245696; cv=none; d=google.com; s=arc-20160816; b=IwHtpD9RVkITiOsViyOYZdiv9DyxsW8BWBbMGb5llvCYUJVDfpUfdHIpX4gzxVigq8 usmJvUn+BWGANk4Z2sZVAyQ7ZZitaTtpVegRB5f67Ye2qUlnz7X8JWjcP46cHnZHBda+ jtzmo/oBaDy/M66yTa4q9jKr0eN5VllO78mzPQuZtfpVnk3UuByE+dUlTRwVURCbvOeN I6FBfv45vED2oRnEPwrPVQmHoyf3Dy9dcH/C+LlRaY0D22kW6dBVG9rWALR/qgnq+uez vTWdXwVHfwrkqYlzrnmcB1CYFitBompxuus9SdgIITdh5rVhJuW9fly4tvGfQ/UZji+f O0ow== 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=GcYcOWAKuGQrEaatOPQe5xAqkdHsDBSlnwMkzM615CE=; b=BlG93NZknQYwzU7ZDB96A8UC0eHumI1dZYUmyk5ufWennnYn4txKnIu70kqOZBg7ND 2wqG3RlIq/DGHBKoDeFAiSfwgdDoeWBhC89uD7odxhPkRH/zFUXAu0BI3fx38HzqbV8f Ap5Dl6WPb+e1VeWqWJ0YfLFMBK6+7bc+shmJQ9ArUsRyeB2mBzu4XnVudu8YJaN6kseB mAH1bZlOiPPQDVPxFvd3au2oaSNABjrnfZ/rCHHIbhERSNaDjyKiDKb5XNapKWQXcKZH 9dMjdoHA5D439BA/ga+zg95dPQ5QY4jhFmAu2u8NUY0QoIHYh8GGrTsJ15nwGVOXhxkq QFTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 m20si6651447pli.398.2017.11.09.08.41.35; Thu, 09 Nov 2017 08:41:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753408AbdKIQle (ORCPT + 23 others); Thu, 9 Nov 2017 11:41:34 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:49178 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752977AbdKIQld (ORCPT ); Thu, 9 Nov 2017 11:41:33 -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 AC34714; Thu, 9 Nov 2017 08:41:32 -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 75B153F3DF; Thu, 9 Nov 2017 08:41:30 -0800 (PST) From: Patrick Bellasi To: linux-kernel@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 0/4] Utilization estimation (util_est) for FAIR tasks Date: Thu, 9 Nov 2017 16:41:13 +0000 Message-Id: <20171109164117.19401-1-patrick.bellasi@arm.com> X-Mailer: git-send-email 2.14.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 behavior has been presented in the previous RFC [1] and further discussed at last OSPM Summit [2] as well as 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, whith the sched_feat(SCHED_UTILEST) set to False. With this feature enabled, the measured overhead is in the range of ~1% on the 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 a better selection of the target CPU as well as a faster selection of the most appropriate OPP. A detailed description of the functional tests used has been already covered in the previous RFC [1]. This series is based on v4.14-rc8 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 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