尽管使用了性能调节器,但处理器频率仍保持在最低水平。内核和硬件在频率上不一致?

Dun*_*une 8 cpu ubuntu macintosh cpu-frequency intel

我在 Linux (Ubuntu 18.04) 上使用带有四个处理器内核的 MacBook Retina:

$ grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name  : Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
cpu MHz     : 799.976
model name  : Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
cpu MHz     : 799.993
model name  : Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
cpu MHz     : 799.992
model name  : Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
cpu MHz     : 800.016
Run Code Online (Sandbox Code Playgroud)

为了启用这个调控器(和按需调控器),我切换到acpi-cpufreq驱动程序。按照(将 CPU 调节器设置为按需或保守)和(https://ubuntuforums.org/showthread.php?t=1767485)中的说明,我必须在以下位置启用两个内核标志grub.cfg

intel_pstate=disable processor.ignore_ppc=1
Run Code Online (Sandbox Code Playgroud)

反正。这就是cpufreq-info给我的:

  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 3
  CPUs which need to have their frequency coordinated by software: 3
  maximum transition latency: 10.0 us.
  hardware limits: 768 MHz - 2.40 GHz
  available frequency steps: 2.40 GHz, 2.40 GHz, 2.30 GHz, 2.00 GHz, 1.80 GHz, 1.50 GHz, 1.30 GHz, 1.10 GHz, 900 MHz, 768 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
  current policy: frequency should be within 768 MHz and 2.40 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
Run Code Online (Sandbox Code Playgroud)

所以 768-2400MHz 硬件限制是众所周知的,但不知何故它拒绝远离 800MHz。我尝试了 on demand 但没有成功。

现在是有趣的部分。如果我只是使用cpupower frequency-info,我会得到

  current CPU frequency: Unable to call hardware
  current CPU frequency: 800 MHz (asserted by call to kernel)
Run Code Online (Sandbox Code Playgroud)

但是,如果我cpupower以 root 身份调用,我会得到

  current CPU frequency: 2.40 GHz (asserted by call to hardware)
Run Code Online (Sandbox Code Playgroud)

这怎么可能?内核和硬件报告不同的值(感觉很慢,所以我相信内核)。您对这里可能出现的问题有任何线索吗?