aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorThomas Renninger <trenn@suse.de>2011-08-11 19:11:38 -0400
committerDominik Brodowski <linux@dominikbrodowski.net>2011-08-15 14:03:16 -0400
commit9ee31f618a3c8209b2bd4bedd71fd5f2be7786bd (patch)
tree7bd67ee5efdded1de122a334217ef1b553b00de5 /tools
parent7c74d2bc5a9d43d33d6f16c1e706147162e2bc52 (diff)
cpupower: Make monitor command -c/--cpu aware
This allows for example: cpupower -c 2-4,6 monitor -m Mperf |Mperf PKG |CORE|CPU | C0 | Cx | Freq 0| 8| 4| 2.42| 97.58| 1353 0| 16| 2| 14.38| 85.62| 1928 0| 24| 6| 1.76| 98.24| 1442 1| 16| 3| 15.53| 84.47| 1650 CPUs always get resorted for package, core then cpu id if it could get read out (or however you name these topology levels...). Still this is a nice way to keep the overview if a test binary is bound to a specific CPU or if one wants to show all CPUs inside a package or similar. Still missing: Do not measure not available cores to reduce the overhead and achieve better results. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'tools')
-rw-r--r--tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
index dd8e1ea6e6f..6cb8d9e6bb6 100644
--- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
+++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
@@ -149,6 +149,10 @@ void print_results(int topology_depth, int cpu)
149 unsigned long long result; 149 unsigned long long result;
150 cstate_t s; 150 cstate_t s;
151 151
152 /* Be careful CPUs may got resorted for pkg value do not just use cpu */
153 if (!bitmask_isbitset(cpus_chosen, cpu_top.core_info[cpu].cpu))
154 return;
155
152 if (topology_depth > 2) 156 if (topology_depth > 2)
153 printf("%4d|", cpu_top.core_info[cpu].pkg); 157 printf("%4d|", cpu_top.core_info[cpu].pkg);
154 if (topology_depth > 1) 158 if (topology_depth > 1)
@@ -389,6 +393,10 @@ int cmd_monitor(int argc, char **argv)
389 return EXIT_FAILURE; 393 return EXIT_FAILURE;
390 } 394 }
391 395
396 /* Default is: monitor all CPUs */
397 if (bitmask_isallclear(cpus_chosen))
398 bitmask_setall(cpus_chosen);
399
392 dprint("System has up to %d CPU cores\n", cpu_count); 400 dprint("System has up to %d CPU cores\n", cpu_count);
393 401
394 for (num = 0; all_monitors[num]; num++) { 402 for (num = 0; all_monitors[num]; num++) {