CPU의 "scaling_setspeed"를 수정하면 두 CPU의 실시간 주파수가 변경되는 이유는 무엇입니까?

CPU의 "scaling_setspeed"를 수정하면 두 CPU의 실시간 주파수가 변경되는 이유는 무엇입니까?

내 노트북 ​​Thinkpad T400은 Ubuntu 16.04를 실행하며 2개의 CPU 코어 cpu0cpu1.

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
797963
797963
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed
800000
800000

/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed그런 다음 내용을 1600000다음 으로 변경하도록 편집합니다 .

  1. 파일 을 변경하지 않고 cpu1의 실시간 주파수도 변경되는 이유는 무엇입니까 scaling_setspeed?

    $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed
    1600000
    800000
    $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
    1595928
    1595926
    
  2. 다음 명령이 위와 다른 결과를 표시하는 이유는 무엇입니까?

    $ watch grep \"cpu MHz\" /proc/cpuinfo
    
    Every 2.0s: grep "cpu MHz" /proc/cpuinfo                                                                                                                   Thu Jan 25 17:31:01 2018
    
    cpu MHz         : 1600.000
    cpu MHz         : 800.000
    

감사해요.


변경 사항은 현재 코어에만 영향을 미치고 둘 다에는 영향을 미치지 않는 것 같습니다.

$ cat /sys/devices/system/cpu/cpu0/cpufreq/affected_cpus
0
$ cat /sys/devices/system/cpu/cpu1/cpufreq/affected_cpus
1

답변1

이는 하드웨어 제한일 수 있습니다. 많은 CPU에서는 동일한 주파수에서 실행되기 위해 모든 코어(때때로 동일한 칩에 있는 코어 쌍)가 필요합니다. affected_cpus동일한 디렉터리에 있는 이 파일은 어떤 코어가 동일한 빈도로 강제로 실행되는지 알려줍니다.

바라보다https://www.kernel.org/doc/Documentation/cpu-freq/user-guide.txt일부 문서.

관련 정보