lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 10 Nov 2009 11:42:02 -0800
From:	"Pallipadi, Venkatesh" <venkatesh.pallipadi@...el.com>
To:	Alexander Miller <Miller@....uni-stuttgart.de>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC:	"cpufreq@...r.kernel.org" <cpufreq@...r.kernel.org>,
	Dave Jones <davej@...hat.com>
Subject: RE: [PATCH] cpufreq: fix conservative/ondemand behaviour with
 ignore_nice_load

>-----Original Message-----
>From: cpufreq-owner@...r.kernel.org 
>[mailto:cpufreq-owner@...r.kernel.org] On Behalf Of Alexander Miller
>Sent: Friday, November 06, 2009 8:27 AM
>To: linux-kernel@...r.kernel.org
>Cc: cpufreq@...r.kernel.org; Dave Jones
>Subject: [PATCH] cpufreq: fix conservative/ondemand behaviour 
>with ignore_nice_load
>
>Remove conversion of nice load to microseconds which caused addition
>of times measured in different units and thus unreasonable behaviour
>with both governors.                                                  

Can you describe the "unresonable behavior" you are seeing. Is it
with NO_HZ enabled or disabled?

I see there can be a problem with this code when NO_HZ is disabled.
But, the patch below is not the right solution as it will result in
Adding times in different units with NO_HZ enabled.

Thanks,
Venki

>
>Signed-off-by: Alexander Miller <Miller@....uni-stuttgart.de>
>---
>diff -uprN 
>linux-2.6.git/drivers/cpufreq/cpufreq_conservative.c 
>linux/drivers/cpufreq/cpufreq_conservative.c
>--- linux-2.6.git/drivers/cpufreq/cpufreq_conservative.c	
>2009-10-10 15:56:58.010595257 +0200
>+++ linux/drivers/cpufreq/cpufreq_conservative.c	
>2009-10-10 20:56:52.194598889 +0200
>@@ -400,20 +400,10 @@ static void dbs_check_cpu(struct cpu_dbs
> 		j_dbs_info->prev_cpu_idle = cur_idle_time;
> 
> 		if (dbs_tuners_ins.ignore_nice) {
>-			cputime64_t cur_nice;
>-			unsigned long cur_nice_jiffies;
>-
>-			cur_nice = 
>cputime64_sub(kstat_cpu(j).cpustat.nice,
>+			idle_time += (unsigned int) cputime64_sub(
>+					 kstat_cpu(j).cpustat.nice,
> 					 j_dbs_info->prev_cpu_nice);
>-			/*
>-			 * Assumption: nice time between 
>sampling periods will
>-			 * be less than 2^32 jiffies for 32 bit sys
>-			 */
>-			cur_nice_jiffies = (unsigned long)
>-					
>cputime64_to_jiffies64(cur_nice);
>-
> 			j_dbs_info->prev_cpu_nice = 
>kstat_cpu(j).cpustat.nice;
>-			idle_time += jiffies_to_usecs(cur_nice_jiffies);
> 		}
> 
> 		if (unlikely(!wall_time || wall_time < idle_time))
>diff -uprN linux-2.6.git/drivers/cpufreq/cpufreq_ondemand.c 
>linux/drivers/cpufreq/cpufreq_ondemand.c
>--- linux-2.6.git/drivers/cpufreq/cpufreq_ondemand.c	
>2009-10-10 16:00:40.380595816 +0200
>+++ linux/drivers/cpufreq/cpufreq_ondemand.c	2009-10-10 
>20:56:52.195596654 +0200
>@@ -488,20 +488,10 @@ static void dbs_check_cpu(struct cpu_dbs
> 		j_dbs_info->prev_cpu_idle = cur_idle_time;
> 
> 		if (dbs_tuners_ins.ignore_nice) {
>-			cputime64_t cur_nice;
>-			unsigned long cur_nice_jiffies;
>-
>-			cur_nice = 
>cputime64_sub(kstat_cpu(j).cpustat.nice,
>+			idle_time += (unsigned int) cputime64_sub(
>+					 kstat_cpu(j).cpustat.nice,
> 					 j_dbs_info->prev_cpu_nice);
>-			/*
>-			 * Assumption: nice time between 
>sampling periods will
>-			 * be less than 2^32 jiffies for 32 bit sys
>-			 */
>-			cur_nice_jiffies = (unsigned long)
>-					
>cputime64_to_jiffies64(cur_nice);
>-
> 			j_dbs_info->prev_cpu_nice = 
>kstat_cpu(j).cpustat.nice;
>-			idle_time += jiffies_to_usecs(cur_nice_jiffies);
> 		}
> 
> 		if (unlikely(!wall_time || wall_time < idle_time))
>--
>To unsubscribe from this list: send the line "unsubscribe cpufreq" in
>the body of a message to majordomo@...r.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists