diff options
| author | Thomas Renninger <trenn@suse.de> | 2011-08-11 19:11:38 -0400 |
|---|---|---|
| committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2011-08-15 14:03:16 -0400 |
| commit | 9ee31f618a3c8209b2bd4bedd71fd5f2be7786bd (patch) | |
| tree | 7bd67ee5efdded1de122a334217ef1b553b00de5 | |
| parent | 7c74d2bc5a9d43d33d6f16c1e706147162e2bc52 (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>
| -rw-r--r-- | tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c | 8 |
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 dd8e1ea6e6f2..6cb8d9e6bb6b 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++) { |
