我正在扩展 Linux 内核以控制某些线程的频率:当它们被调度到一个内核(任何内核!)上时,内核的频率会通过将正确的 p-state 写入寄存器来更改IA32_PERF_CTL
,如 Intel 的建议手动的。但是当调度具有不同“自定义”频率的不同线程时,似乎所有线程的吞吐量都会增加,就好像所有内核都以最大设定频率运行一样。
我在不同的负载和配置条件下做了很多试验和测量,但结果是一样的。在使用 CPUFreq 进行了一些试验后(没有运行应用程序,我在每个内核上设置了不同的频率,最后用 cpufreq-info -w 测量的频率相等),我想知道 CPU 内核是否真的可以以不同的独立频率运行,或者是否存在硬件策略或限制。
最后,是否有一种 CPU 模型可以使这种细粒度的频率缩放变得可行?
我使用的 CPU 是 Intel Core i5 750