From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: Re: [RESEND][PATCH] cpuidle: governor: menu: move repeated correction factor check to init Date: Fri, 16 May 2014 11:46:40 +0200 Message-ID: <5375DE80.4030707@intel.com> References: <1398170284-7551-1-git-send-email-chander.kashyap@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mga09.intel.com ([134.134.136.24]:6783 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756258AbaEPJqz (ORCPT ); Fri, 16 May 2014 05:46:55 -0400 In-Reply-To: Sender: linux-pm-owner@vger.kernel.org List-Id: linux-pm@vger.kernel.org To: Chander Kashyap , "Rafael J. Wysocki" Cc: Tuukka Tikkanen , Daniel Lezcano , "linux-pm@vger.kernel.org" , "linux-kernel@vger.kernel.org" On 5/16/2014 10:16 AM, Chander Kashyap wrote: > On 22 April 2014 18:08, Chander Kashyap wrote: >> In menu_select function we check for correction factor every time. >> If it is zero we are initializing to unity. Hence move it to init function >> and initialise by unity, hence avoid repeated comparisons. >> >> Signed-off-by: Chander Kashyap >> Reviewed-by: Tuukka Tikkanen >> --- >> drivers/cpuidle/governors/menu.c | 15 ++++++++------- >> 1 file changed, 8 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c >> index 71b5232..9b7918c 100644 >> --- a/drivers/cpuidle/governors/menu.c >> +++ b/drivers/cpuidle/governors/menu.c >> @@ -311,13 +311,6 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev) >> data->bucket = which_bucket(data->next_timer_us); >> >> /* >> - * if the correction factor is 0 (eg first time init or cpu hotplug >> - * etc), we actually want to start out with a unity factor. >> - */ >> - if (data->correction_factor[data->bucket] == 0) >> - data->correction_factor[data->bucket] = RESOLUTION * DECAY; >> - >> - /* >> * Force the result of multiplication to be 64 bits even if both >> * operands are 32 bits. >> * Make sure to round up for half microseconds. >> @@ -466,9 +459,17 @@ static int menu_enable_device(struct cpuidle_driver *drv, >> struct cpuidle_device *dev) >> { >> struct menu_device *data = &per_cpu(menu_devices, dev->cpu); >> + int i; >> >> memset(data, 0, sizeof(struct menu_device)); >> >> + /* >> + * if the correction factor is 0 (eg first time init or cpu hotplug >> + * etc), we actually want to start out with a unity factor. >> + */ >> + for(i = 0; i < BUCKETS; i++) >> + data->correction_factor[i] = RESOLUTION * DECAY; >> + >> return 0; >> } >> > ping. I believe this is in linux-next today, care to check? Rafael