diff options
author | Shreyas B. Prabhu <shreyas@linux.vnet.ibm.com> | 2015-08-03 11:46:00 +0530 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-08-29 01:38:16 +0200 |
commit | 404c2db635b0e41697eed165b045cb47fd729dd0 (patch) | |
tree | d8d0908bf88770db3e5e30009a79a006ed0c5571 /tools/power/cpupower | |
parent | 82bb70c599d81e6b2535f887b02e1719cc4856ac (diff) | |
download | linux-404c2db635b0e41697eed165b045cb47fd729dd0.tar.gz linux-404c2db635b0e41697eed165b045cb47fd729dd0.tar.bz2 linux-404c2db635b0e41697eed165b045cb47fd729dd0.zip |
tools: cpupower: Fix error when running cpupower monitor
get_cpu_topology() tries to get topology info from all cpus by reading
files in the topology sysfs dir. If a cpu is offlined, since it doesn't
have topology dir, this function fails and returns -1. This causes
functions relying on get_cpu_topology() to fail. For example-
$ cpupower monitor
Cannot read number of available processors
Fix this by skipping fetching topology info for offline cpus.
Signed-off-by: Shreyas B. Prabhu <shreyas@linux.vnet.ibm.com>
Reported-by: Pavaman Subramaniyam <pavsubra@linux.vnet.ibm.com>
Acked-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'tools/power/cpupower')
-rw-r--r-- | tools/power/cpupower/utils/helpers/topology.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/power/cpupower/utils/helpers/topology.c b/tools/power/cpupower/utils/helpers/topology.c index c13120af519b..cea398c176e7 100644 --- a/tools/power/cpupower/utils/helpers/topology.c +++ b/tools/power/cpupower/utils/helpers/topology.c @@ -73,6 +73,8 @@ int get_cpu_topology(struct cpupower_topology *cpu_top) for (cpu = 0; cpu < cpus; cpu++) { cpu_top->core_info[cpu].cpu = cpu; cpu_top->core_info[cpu].is_online = sysfs_is_cpu_online(cpu); + if (!cpu_top->core_info[cpu].is_online) + continue; if(sysfs_topology_read_file( cpu, "physical_package_id", |