From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753272AbcEPClD (ORCPT ); Sun, 15 May 2016 22:41:03 -0400 Received: from mga01.intel.com ([192.55.52.88]:48632 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753118AbcEPCk7 (ORCPT ); Sun, 15 May 2016 22:40:59 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,625,1455004800"; d="scan'208";a="807306287" From: Yuyang Du To: peterz@infradead.org, mingo@kernel.org, linux-kernel@vger.kernel.org Cc: bsegall@google.com, pjt@google.com, morten.rasmussen@arm.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, juri.lelli@arm.com, Yuyang Du Subject: [RFC PATCH 1/9] sched/fair: Chance LOAD_AVG_MAX_N from 345 to 347 Date: Mon, 16 May 2016 02:59:26 +0800 Message-Id: <1463338774-3324-2-git-send-email-yuyang.du@intel.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1463338774-3324-1-git-send-email-yuyang.du@intel.com> References: <1463338774-3324-1-git-send-email-yuyang.du@intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In commit 5b51f2f80b3b906ce59bd4dce6eca3c7f34cb1b9 Author: Paul Turner Date: Thu Oct 4 13:18:32 2012 +0200 sched: Make __update_entity_runnable_avg() fast Paul has a program to compute LOAD_AVG_MAX_N, which basically means how many periods (at least) are needed for LOAD_AVG_MAX, and the result of calc_conv(1024) is 345: long mult_inv(long c, int n) { return (c * runnable_avg_yN_inv[n]) >> WMULT_SHIFT; } void calc_conv(long n) { long old_n; int i = -1; printf("convergence (LOAD_AVG_MAX, LOAD_AVG_MAX_N)\n"); do { old_n = n; n = mult_inv(n, 1) + 1024; i++; } while (n != old_n); printf("%d> %ld\n", i - 1, n); printf("\n"); } The initial value of i is -1, which should be 1 as far as I can tell. Accordingly, the final result of LOAD_AVG_MAX_N should be changed from 345 to 347. Signed-off-by: Yuyang Du --- kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 218f8e8..2635561 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -666,7 +666,7 @@ static unsigned long task_h_load(struct task_struct *p); */ #define LOAD_AVG_PERIOD 32 #define LOAD_AVG_MAX 47742 /* maximum possible load avg */ -#define LOAD_AVG_MAX_N 345 /* number of full periods to produce LOAD_AVG_MAX */ +#define LOAD_AVG_MAX_N 347 /* number of full periods to produce LOAD_AVG_MAX */ /* Give new sched_entity start runnable values to heavy its load in infant time */ void init_entity_runnable_average(struct sched_entity *se) -- 1.7.9.5