DORMANTno replies

[PATCH] cpupower: fix frequency-set check for online CPUs

From: Steven Noonan <hidden>
Date: 2016-09-04 22:44:54
Subsystem: cpu power monitoring subsystem, the rest · Maintainers: Thomas Renninger, Shuah Khan, Shuah Khan, John B. Wyatt IV, John B. Wyatt IV, John Kacur, Linus Torvalds

It used to look at whether the cpuN directory existed (a function which
returned 0 on success, nonzero on failure), but the cpupower_is_cpu_online
function returns 1 when the CPU is online. This caused it to skip all online
CPUs since it was expecting 0 to mean 'online'.

We also had a redundant (and also wrong) check on cpupower_is_cpu_online when
iterating over the bitmask to run the set operations.

Signed-off-by: Steven Noonan <redacted>
---
 tools/power/cpupower/utils/cpufreq-set.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/power/cpupower/utils/cpufreq-set.c b/tools/power/cpupower/utils/cpufreq-set.c
index b4bf769..ec7d7da 100644
--- a/tools/power/cpupower/utils/cpufreq-set.c
+++ b/tools/power/cpupower/utils/cpufreq-set.c
@@ -296,7 +296,7 @@ int cmd_freq_set(int argc, char **argv)
 			struct cpufreq_affected_cpus *cpus;
 
 			if (!bitmask_isbitset(cpus_chosen, cpu) ||
-			    cpupower_is_cpu_online(cpu))
+			    cpupower_is_cpu_online(cpu) != 1)
 				continue;
 
 			cpus = cpufreq_get_related_cpus(cpu);
@@ -315,8 +315,7 @@ int cmd_freq_set(int argc, char **argv)
 	for (cpu = bitmask_first(cpus_chosen);
 	     cpu <= bitmask_last(cpus_chosen); cpu++) {
 
-		if (!bitmask_isbitset(cpus_chosen, cpu) ||
-		    cpupower_is_cpu_online(cpu))
+		if (!bitmask_isbitset(cpus_chosen, cpu))
 			continue;
 
 		if (cpupower_is_cpu_online(cpu) != 1)
-- 
2.9.3
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help