mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-11-01 10:33:27 +00:00
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>
This commit is contained in:
parent
7c74d2bc5a
commit
9ee31f618a
1 changed files with 8 additions and 0 deletions
|
@ -149,6 +149,10 @@ void print_results(int topology_depth, int cpu)
|
||||||
unsigned long long result;
|
unsigned long long result;
|
||||||
cstate_t s;
|
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)
|
if (topology_depth > 2)
|
||||||
printf("%4d|", cpu_top.core_info[cpu].pkg);
|
printf("%4d|", cpu_top.core_info[cpu].pkg);
|
||||||
if (topology_depth > 1)
|
if (topology_depth > 1)
|
||||||
|
@ -389,6 +393,10 @@ int cmd_monitor(int argc, char **argv)
|
||||||
return EXIT_FAILURE;
|
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);
|
dprint("System has up to %d CPU cores\n", cpu_count);
|
||||||
|
|
||||||
for (num = 0; all_monitors[num]; num++) {
|
for (num = 0; all_monitors[num]; num++) {
|
||||||
|
|
Loading…
Reference in a new issue