Skip to content

Commit

Permalink
cpupower: Make monitor command -c/--cpu aware
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
watologo1 authored and Dominik Brodowski committed Aug 15, 2011
1 parent 7c74d2b commit 9ee31f6
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,10 @@ void print_results(int topology_depth, int cpu)
unsigned long long result;
cstate_t s;

/* Be careful CPUs may got resorted for pkg value do not just use cpu */
if (!bitmask_isbitset(cpus_chosen, cpu_top.core_info[cpu].cpu))
return;

if (topology_depth > 2)
printf("%4d|", cpu_top.core_info[cpu].pkg);
if (topology_depth > 1)
Expand Down Expand Up @@ -389,6 +393,10 @@ int cmd_monitor(int argc, char **argv)
return EXIT_FAILURE;
}

/* Default is: monitor all CPUs */
if (bitmask_isallclear(cpus_chosen))
bitmask_setall(cpus_chosen);

dprint("System has up to %d CPU cores\n", cpu_count);

for (num = 0; all_monitors[num]; num++) {
Expand Down

0 comments on commit 9ee31f6

Please sign in to comment.