Linux cpufreq 거버너는 sysfs의 scale_max_freq를 일시적으로 변경합니까?

Linux cpufreq 거버너는 sysfs의 scale_max_freq를 일시적으로 변경합니까?

변수 sysfs에 대한 Linux 문서 scaling_max_freq보고서

이 정책에 속하는 CPU가 실행될 수 있는 최대 주파수(kHz)입니다.

이 속성은 읽기-쓰기이며 정수를 나타내는 문자열을 쓰면 새로운 제한이 설정됩니다( scaling_min_freq속성 값보다 낮아서는 안 됩니다).

위의 내용은 다음 명령을 사용할 수 있다는 것입니다.

$ echo 2133000 >/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

cpufreq 조정자에게 cpu0이 최대 2133Mhz로 실행되기를 원한다고 말하세요. 값을 설정한 후 다음을 통해 설정을 확인할 수 있습니다.

$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

이것은 2133000을 산출합니다

이제 이상한 부분이 생겨서 여기서 이런 질문을 하게 되었습니다.

커널 빌드와 같이 CPU를 많이 사용하는 작업 중에 값을 확인하면 /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq훨씬 낮은 빈도인 1199000이 보고됩니다.

이제 혼란스럽습니다. 누가 이 값을 변경했습니까? CPU 주파수 조절기?

칭찬할 업데이트/정보

  • dmesg제한 메시지를 표시하지 않습니다.
  • make -j4Intel CPU의 4개의 쿼드 파이프라인을 이런 식으로 사용하는데 사용됩니다. ( model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz)
  • uname -aLinux work 4.18.3-arch1-1-ARCH #1 SMP PREEMPT Sat Aug 18 09:22:54 UTC 2018 x86_64 GNU/Linux그래서 내 아치 리눅스 스톡 커널을 보여줍니다
  • CPUFreq 레귤레이터는schedutil
  • /sys/devices/system/cpu/cpufreq/policy0/scaling_driver프로그램acpi-cpufreq

  • /sys/devices/system/cpu/cpu0/cpufreq/bios_limit예상대로 CPU의 최대 주파수를 2666000에 알려줍니다. (CPU 스트레스를 받는 동안 이 값을 확인해야 합니까, 아니면 유휴 상태에서 확인해야 합니까?)

노트북은 Lenovo Thinkpad X201t(태블릿) 모델이며, 전원 어댑터는 구입 시 해당 모델에 제공된 정품 전원 어댑터입니다. 다만, 일시적으로 주 전원 어댑터를 다른 어댑터로 교체해 드렸으며, 결과를 다시 알려드리겠습니다.

절대적으로 명확하십시오. scaling_max_freq이 값은 높은 CPU 로드 작업이 종료된 후에 복원됩니다. "거의 유휴" 상태에서는 다시 2133000원래 설정을 알려줍니다 .

관련 정보