From patchwork Wed Oct 4 08:04:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Yan X-Patchwork-Id: 114753 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp2822272qgn; Wed, 4 Oct 2017 01:04:53 -0700 (PDT) X-Received: by 10.84.129.132 with SMTP id b4mr7067925plb.412.1507104293580; Wed, 04 Oct 2017 01:04:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507104293; cv=none; d=google.com; s=arc-20160816; b=TZGW4hVWAPtkK18TbqoLtuUWtrjPGvOaFaD3+htemYaWgkbqLYy1wApYMrbtw5phJO 0aSPX/+RwRYEn83HgT9l6eG/+NXOTkukZDQ4SGDzxKbrSgyIu3+aN0TZYxaCdG9w0eoQ R6xM6zKl3fg4WoGDUtmpy0mtCiQruaCTQ5E55/tcnqlE3xdy8uSONT2orMnj050T4LbC nnW6nn9psEFZZV41BdggzQGABeWiv8BAKNOTWkfH5de2Bfki2Bm99hO/EzTPH0McwX09 uWk3LB66YPDU1kQjvsr3HCs4gY1sv72j1Jw/sH6bL0DwpSXVUyRDsPrlVfDtcKptX4No Y7ZQ== 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 :dkim-signature:arc-authentication-results; bh=3pwBSl7T1ecPKWxQGqkdkwXWIDg4+huomt4diow/KdA=; b=QOmqSpF0H+jYlGak6G1IwFfWAvKOg4BKbWWACL71f6uL7IR0CTBXEjLWbmYVCvlC2p xZ7JLSMNy1rzU9tGx1mpZJChtX/xAIeHJA5oSZJMXMZQffAY26CMAMw0xOdlRLcRagVA mCtgVQ/oF/1yPb15huGAgCpva2Svw1NRCScyzbXCK5YTYCkwmhnfBV5KcRypLR0krdKB rQwmWGyDeo4Jtm9ZIfRWLEH3IK5GgsW/Df2EUoUk8/D8mwy+w7BcUj+AwDMD7vvPWTNE F+5915o3NJgTjEYtcqLkfyMehf6BS/Yw0THEWbZAxQSvsB1hxyigQuIR3GYr4+Gqr3xx j3/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZrSva+rB; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i4si11244396pfj.577.2017.10.04.01.04.53; Wed, 04 Oct 2017 01:04:53 -0700 (PDT) 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; dkim=pass header.i=@linaro.org header.s=google header.b=ZrSva+rB; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751447AbdJDIEu (ORCPT + 26 others); Wed, 4 Oct 2017 04:04:50 -0400 Received: from mail-pg0-f44.google.com ([74.125.83.44]:47655 "EHLO mail-pg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750779AbdJDIEq (ORCPT ); Wed, 4 Oct 2017 04:04:46 -0400 Received: by mail-pg0-f44.google.com with SMTP id r25so3718708pgn.4 for ; Wed, 04 Oct 2017 01:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=3pwBSl7T1ecPKWxQGqkdkwXWIDg4+huomt4diow/KdA=; b=ZrSva+rBSNwd91087vBHyEsIeL+b6i/nMdjzzEHOsDX3j1hkmIYQ79E8IRCu5bWNKY 0s44lYaP6MoDaIF8B9cYUekDSk2Rk0j941rDRLhJjvZ3olzdBR6EThYeVlBF/87Na2J2 8A4zk0eonTmMWtVFzeYk4KgW1jSWkl9HmYO1U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=3pwBSl7T1ecPKWxQGqkdkwXWIDg4+huomt4diow/KdA=; b=lZSgzqOEuOMPZkbNBcL/RSZxjV0eFIPxeAeU95U9VQA38kmiP3vU0fRDrPmobHzZdR 6f8zvq8Zv68IBHQUpgULRnFVyBpOp2L45jvAwOsiH1nUztiajODs0FQrR0haJftyXm00 XHoAv9HUAhrKh6SZiXh6BC5MRRdvRXCy+I0JK6TpxsaTwrWYXRlqUEAC/IFx+821wVSL V2BcWVkNbnWi+KzvxGhfL5UGdO3Su88dWzRAWyJV135xoMngWiSu4xYo/I+cpjSxmpZf sQPZ9+UnhFsFHPQ11oK2ILrLIW1CRqk8N0klP2VpmGursgccj6PbFPl3pj9GkRvf53WI szQQ== X-Gm-Message-State: AHPjjUh12yQemZZlQEoxRqru0tNfWq5K78SLKALgEPZf7N4b4KwXkr7W SezcpgzQOKA/B3P/ge9mvm4yoQ== X-Google-Smtp-Source: AOwi7QBzYAoOUwJEM22xG9sIOpcRV9owU15hijKVdVsLdZICnbnu1bEhaaOX0wio5ws8xBG6vMyBdQ== X-Received: by 10.84.179.129 with SMTP id b1mr18697715plc.267.1507104285977; Wed, 04 Oct 2017 01:04:45 -0700 (PDT) Received: from localhost.localdomain (li1068-205.members.linode.com. [106.184.3.205]) by smtp.gmail.com with ESMTPSA id r12sm21830904pgp.81.2017.10.04.01.04.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 04 Oct 2017 01:04:44 -0700 (PDT) From: Leo Yan To: Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org Cc: Leo Yan , Dietmar Eggemann , Morten Rasmussen , Chris Redpath , Joel Fernandes , Vincent Guittot , Patrick Bellasi Subject: [PATCH v3 1/2] sched/fair: make capacity_margin __read_mostly Date: Wed, 4 Oct 2017 16:04:33 +0800 Message-Id: <1507104274-24385-1-git-send-email-leo.yan@linaro.org> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Variable 'capacity_margin' is used with read operation for most cases to calculate the capacity margin, put it into __read_mostly section. Cc: Dietmar Eggemann Cc: Morten Rasmussen Cc: Chris Redpath Cc: Joel Fernandes Cc: Vincent Guittot Cc: Patrick Bellasi Signed-off-by: Leo Yan --- kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.4 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 70ba32e..ad03bf4 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -129,7 +129,7 @@ unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL; * * (default: ~20%) */ -unsigned int capacity_margin = 1280; +unsigned int capacity_margin __read_mostly = 1280; static inline void update_load_add(struct load_weight *lw, unsigned long inc) { From patchwork Wed Oct 4 08:04:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Yan X-Patchwork-Id: 114754 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp2822336qgn; Wed, 4 Oct 2017 01:04:59 -0700 (PDT) X-Received: by 10.101.69.74 with SMTP id x10mr17823266pgr.294.1507104299625; Wed, 04 Oct 2017 01:04:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507104299; cv=none; d=google.com; s=arc-20160816; b=P8udUSxz5i5AQkjbWk3OgdGE4f51MiJJjAwOFodJaQzBCvKP47P+U6U4wjm/ZnOtoP VRHIpqmIJwQSD63tJ8JBJOYeavDAAhAlwtDvOCtnJuK6+sbT0J29jI1AouSeE2Dj3sAU Fol1jqmSVwTJR1A+ESpHEG9DauhEmwX5zTc3tKSlet6t/zLH52uyk+NeTYLS1WRNxhkS 4gTaOweyd6hfKsefmAT+dBSb/WPSSoLE0tsmjfG9tr0jRCoBeX1s4rymSrqhNs0vUzk5 I5aCfYLx26ncNQmkcJNcZzgyiz09Lgypv0ekOx6ESFEV+rW+9c/0WtUdCtzq6fm8fpGU 7v6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=rJ1ArqNcMApyvCITKI9N4wWAj8PomZSMnopYgGiIfis=; b=Xe+qhIp7KmB26RzfH8knZr7+tpVDNTE92q8Uh3i+h4cA/x/wqk0NUa7SY9seOpzpJy 0dJtp8cU3PDif2G8BZRRO8hEUGNaP6Aba+lZ3yYpq5OEGpCiXVixGC3Zl1X3pafuKbs1 FuhoIqSlN13a99NfBW1XM5GH2gKvE+McclI6GxsVghZ5Hhx0clOWlNXqY+rKB53KKFUi mfXqRsM8ZhDXvhirmHFJriTU2sU1ins44BK3ycwfdjVYBStOBrrdqVElddWbNV1tKoKQ YEEoaVRgxyG2e3FE1Qf0boDNOsrN6msIfh2qWuILa5BO1CBcrb8nveDNd+zMfdzlmpKY THMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MtndpR64; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i4si11244396pfj.577.2017.10.04.01.04.59; Wed, 04 Oct 2017 01:04:59 -0700 (PDT) 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; dkim=pass header.i=@linaro.org header.s=google header.b=MtndpR64; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751736AbdJDIE5 (ORCPT + 26 others); Wed, 4 Oct 2017 04:04:57 -0400 Received: from mail-pf0-f177.google.com ([209.85.192.177]:51546 "EHLO mail-pf0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751500AbdJDIEw (ORCPT ); Wed, 4 Oct 2017 04:04:52 -0400 Received: by mail-pf0-f177.google.com with SMTP id n14so3991239pfh.8 for ; Wed, 04 Oct 2017 01:04:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rJ1ArqNcMApyvCITKI9N4wWAj8PomZSMnopYgGiIfis=; b=MtndpR64g/h1snMpwH67FRDAFdIGR9k3cPQwe46APwPFA5134URvh+JUXKdk+LDQA1 Q9RztvyIxHx1GhlrTcNbZvRxXRUPdLhi6sBkqfvzlQAWmPb9HhYErytLaAdh2lcigbGu VsBvKGzrAIRyuWeX/CRWUj5D2kV+oPLLQmfSA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rJ1ArqNcMApyvCITKI9N4wWAj8PomZSMnopYgGiIfis=; b=eZ28oeCkUZULREek3bGwtxJ0hNIHFNeUC+QpAsEcrf/5Rn1A8ANQne/JSVbgqkaQl2 ftFdVih0/OMiCmVd5fV6jedbt1070Sp0i5qTd9gS6hHE/yTTSJXmNaihEFV2Scf23j0I YuufwSv0OU/IEbiS86v+ZQwxfu7pLwuXEvjAlmuRWu9oh8gJPXS0xx4ZojgtRangZd3p sHIJTHen+bRMiukw43QhLDbrN2RSfIsyjybdyM90QyhNratDfxnoJwsohfH0myPYC1kF 9Kd9QBfa1faPNLyKF1F/FjhUwHlH8UQfTN8vlYIOnyGZl7zlDayOgIZwv0bRMFqzyl70 Ls3A== X-Gm-Message-State: AHPjjUjZi5IFiCRe1LpAoG0ffvGzxryAxItBgI5eNyKCYuMBIGppaz2L wDLhIXdP6r2hN09DDj+Skz/p5A== X-Google-Smtp-Source: AOwi7QALIC6+emnBCVBMeknFGzK9vXFJlDjvHZNngw4BNe+TZQhhIAPYHJ1skPuSqhREDtFIjnSwcQ== X-Received: by 10.84.130.108 with SMTP id 99mr19437549plc.343.1507104291586; Wed, 04 Oct 2017 01:04:51 -0700 (PDT) Received: from localhost.localdomain (li1068-205.members.linode.com. [106.184.3.205]) by smtp.gmail.com with ESMTPSA id r12sm21830904pgp.81.2017.10.04.01.04.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 04 Oct 2017 01:04:50 -0700 (PDT) From: Leo Yan To: Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org Cc: Leo Yan , Dietmar Eggemann , Morten Rasmussen , Chris Redpath , Joel Fernandes , Vincent Guittot , Patrick Bellasi , "Rafael J . Wysocki" Subject: [PATCH v3 2/2] cpufreq: schedutil: consolidate capacity margin calculation Date: Wed, 4 Oct 2017 16:04:34 +0800 Message-Id: <1507104274-24385-2-git-send-email-leo.yan@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507104274-24385-1-git-send-email-leo.yan@linaro.org> References: <1507104274-24385-1-git-send-email-leo.yan@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Scheduler CFS class has variable 'capacity_margin' to represent the capacity margin, currently in the kernel 'capacity_margin' is 1280; on the other hand schedutil governor also needs to compensate the margin for frequency tipping point. Below are formulas which are used in CFS class and schedutil governor separately, from the formulas we can get to know essentially both of them uses the same margin: CFS: U` = U * capacity_margin / 1024 = U * 1.25 Schedutil: U` = U + U >> 2 = U + U * 0.25 = U * 1.25 This patch consolidates the usage of the capacity margin value and lets schedutil use the same formula as the CFS class. Thus we can avoid the mismatch between schedutil and CFS class if 'capacity_margin' is changed to other values in the future. Cc: Dietmar Eggemann Cc: Morten Rasmussen Cc: Chris Redpath Cc: Joel Fernandes Cc: Vincent Guittot Cc: Patrick Bellasi Cc: Rafael J. Wysocki Signed-off-by: Leo Yan --- kernel/sched/cpufreq_schedutil.c | 7 +++++-- kernel/sched/sched.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 9209d83..79abbaa 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -155,7 +155,9 @@ static void sugov_update_commit(struct sugov_policy *sg_policy, u64 time, * * next_freq = C * curr_freq * util_raw / max * - * Take C = 1.25 for the frequency tipping point at (util / max) = 0.8. + * Take C = capacity_margin >> SCHED_CAPACITY_SHIFT; if capacity_margin is + * 1280 and SCHED_CAPACITY_SHIFT is 10, this results in C = 1.25 and the + * frequency tipping point at (util / max) = 0.8. * * The lowest driver-supported frequency which is equal or greater than the raw * next_freq (as calculated above) is returned, subject to policy min/max and @@ -168,7 +170,8 @@ static unsigned int get_next_freq(struct sugov_policy *sg_policy, unsigned int freq = arch_scale_freq_invariant() ? policy->cpuinfo.max_freq : policy->cur; - freq = (freq + (freq >> 2)) * util / max; + freq = freq * capacity_margin >> SCHED_CAPACITY_SHIFT; + freq = freq * util / max; if (freq == sg_policy->cached_raw_freq && sg_policy->next_freq != UINT_MAX) return sg_policy->next_freq; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 14db76c..cf75bdc 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -52,6 +52,7 @@ struct cpuidle_state; #define TASK_ON_RQ_MIGRATING 2 extern __read_mostly int scheduler_running; +extern unsigned int capacity_margin __read_mostly; extern unsigned long calc_load_update; extern atomic_long_t calc_load_tasks;