google/benchmark

[BUG] ARM big.LITTLE boards report wrong cpu count and frequency

Open

#1,385 创建于 2022年4月27日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)C++ (1,539 fork)batch import
bughelp wanted

仓库指标

Star
 (7,968 star)
PR 合并指标
 (平均合并 4天 2小时) (30 天内合并 19 个 PR)

描述

Describe the bug On big.LITTLE ARM systems the displayed frequency and corresponding cpu count are wrong.

System Which OS, compiler, and compiler version are you using:

  • OS: Debian
  • Compiler and version: clang-12

To reproduce Link a binary against libbenchmark and run it Example output:

Running ./dojo_bench
Run on (6 X 1512 MHz CPU s)
Load Average: 0.10, 0.19, 0.77

Expected behavior Print the highest cpu frequency of all available cores, because the benchmark is always ran there.

Running ./dojo_bench
Run on (2 X 2016 MHz CPU s and 4 X 1512 MHz CPU s)
Load Average: 0.10, 0.19, 0.77

Additional context

for i in {0..5}; do cat /sys/devices/system/cpu/cpu"$i"/cpufreq/scaling_max_freq; done
1512000
1512000
1512000
1512000
2016000
2016000

The benchmark is always ran either on cpu 4 or 5. Shutting down last 2 cores causes benchmark times to drop significantly, proving that the "1512 MHz" core is never used.

贡献者指南