![更改涡轮增压比率限制](https://linux22.com/image/938991/%E6%9B%B4%E6%94%B9%E6%B6%A1%E8%BD%AE%E5%A2%9E%E5%8E%8B%E6%AF%94%E7%8E%87%E9%99%90%E5%88%B6.png)
答案1
使用此答案需要您自担风险。
此答案使用 Intel(R) Core(TM) i5-10600K 作为示例。寄存器地址对于 i7-4700MQ 应该相同。
注意:如果您的内核足够新,则对 MSR(机器特定寄存器)的写访问将被禁用,需要msr.allow_writes=on
将其添加到您的/etc/default/grub
命令行中GRUB_CMDLINE_LINUX_DEFAULT
。
先决条件:已加载 msr-tools、turbostat 和 msr 模块。
仅当 MSR_PLATFORM_INFO(0CEH)第 28 位为 0 时,才可读取 MSR_TURBO_RATIO_LIMIT(1ADH),但如果第 28 位为 1,则可以读/写。
示例方法 1:
$ sudo modprobe msr
$ sudo rdmsr --bitfield 28:28 0x0ce
1
示例方法 2,使用 turbostat 读取寄存器并自行解码。现在还列出观察 turbo 比率的方法 2:
$ sudo turbostat
turbostat version 21.05.04 - Len Brown <[email protected]>
...
cpu2: MSR_PLATFORM_INFO: 0x808083af1012900
...
cpu2: MSR_TURBO_RATIO_LIMIT: 0x303030303030
48 * 100.0 = 4800.0 MHz max turbo 6 active cores
48 * 100.0 = 4800.0 MHz max turbo 5 active cores
48 * 100.0 = 4800.0 MHz max turbo 4 active cores
48 * 100.0 = 4800.0 MHz max turbo 3 active cores
48 * 100.0 = 4800.0 MHz max turbo 2 active cores
48 * 100.0 = 4800.0 MHz max turbo 1 active cores
...
因此,我可以更改涡轮增压比。目前涡轮增压比是多少?方法 2,上面列出并解码了涡轮增压器,这可能是最简单的。方法 1:
$ sudo rdmsr 0x1AD
303030303030
每个活动核心数 8 个字节,以 1 开始,或者全部为 48。所以假设我想将 6 个活动核心更改为 47,或 2FH:
$ sudo wrmsr 0x1AD 0x2f3030303030
$ sudo rdmsr 0x1AD
2f3030303030
也可以通过 turbostat 检查:
$ sudo turbostat
...
cpu10: MSR_TURBO_RATIO_LIMIT: 0x2f3030303030
47 * 100.0 = 4700.0 MHz max turbo 6 active cores
48 * 100.0 = 4800.0 MHz max turbo 5 active cores
48 * 100.0 = 4800.0 MHz max turbo 4 active cores
48 * 100.0 = 4800.0 MHz max turbo 3 active cores
48 * 100.0 = 4800.0 MHz max turbo 2 active cores
48 * 100.0 = 4800.0 MHz max turbo 1 active cores
注意:某些处理器型号列出的涡轮增压比比其实际拥有的核心数更多。i5-9600K 示例:
cpu5: MSR_TURBO_RATIO_LIMIT: 0x2b2b2e2e2e2e2e2e
43 * 100.0 = 4300.0 MHz max turbo 8 active cores << I only have 6 cores
43 * 100.0 = 4300.0 MHz max turbo 7 active cores << I only have 6 cores
46 * 100.0 = 4600.0 MHz max turbo 6 active cores
46 * 100.0 = 4600.0 MHz max turbo 5 active cores
46 * 100.0 = 4600.0 MHz max turbo 4 active cores
46 * 100.0 = 4600.0 MHz max turbo 3 active cores
46 * 100.0 = 4600.0 MHz max turbo 2 active cores
46 * 100.0 = 4600.0 MHz max turbo 1 active cores
可以忽略该信息。