Linux

我可以以不同的時鐘速度執行多個核心嗎?

  • January 14, 2013

我看到我正在查看的 Intel i5 機器上的核心只能以相同的時鐘速度執行:/sys/devices/system/cpu/cpu1/cpufreq/related_cpus列出所有 CPU。正如預期的那樣,設置 cpu1 的時鐘速度會改變 cpu0。

假設我正在執行的 AMD A6-4400M 機器應該能夠以不同的時鐘速度執行每個核心:/sys/devices/system/cpu/cpu1/cpufreq/related_cpu只列出 cpu1。當我使用性能調節器設置 cpu1 的時鐘速度並將 1400000 回顯到 時scaling_max_freq,cpu0 的時鐘速度按預期保持在 2700000。Cpu1 的 scaling_cur_freq 按預期讀取 1400000。

但是,cpu1 的cpuinfo_cur_freq讀數為 2700000。從基準測試來看,CPU1 似乎確實仍在 2.7 GHz 執行。我錯過了什麼,還是有什麼壞了?

我正在執行 Linux 2.6.35,並傳入idle=mwait核心命令行。

這還不是一個確定的答案。相反,這是一組太長的建議,無法放入評論中。

恐怕您可能會稍微誤解 sysfs cpufreq 參數的含義。例如,在我的Core Duo筆記型電腦上,related_cpu兩個核心的參數都讀取0 1- 根據您的解釋,這意味著核心無法獨立切換頻率。但事實並非如此——我可以隨意設置每個頻率。相比之下,**affected_cpus**每個核心的參數僅列出各自的 CPU 編號。

您可能想查看 cpu-freq 的核心文件,以更好地理解參數,例如affected_cpus、和. 該文件通常與核心原始碼包一起分發。具體來說,我建議閱讀,其中通常代表or 。(但是,當我現在自己瀏覽文件時,我承認我沒有發現一些與頻率縮放相關的細微差別。要完全理解這些,可能需要首先對 CPU 架構有一個紮實的理解。)related_cpus``scaling_*``cpuinfo_*<kernel-sources-dir>/Documentation/cpu-freq/user-guide.txt<kernel-sources-dir>``/usr/src/linux``/usr/src/linux-<kernel-version>

回到你的問題。我還有一個測試案例:當我更改scaling_max_freq(使用userspaceperformance使用調控器)的值時,核心時鐘會自動切換到新的最大值。您觀察到的不同行為可能是:

  • 特定於 CPU 上頻率縮放機制的硬體實現,
  • 由於標準cpufreq模組和phc-intel我正在使用的模組之間的差異,
  • 模組的正常行為(如果你願意,可以稱之為錯誤或功能)cpufreq,它在某些時候發生了變化2.6.35(我目前的核心版本是3.6.2),
  • cpufreq您的 CPU(或整個系列)的實現中出現錯誤的結果,
  • 具體到performance2.6.35.

您可能會做一些事情來進一步推動您的調查:

  • 閱讀user-guide.txt並更多地使用其他cpufreq參數,
  • 在執行較新的核心時重複測試 - 最簡單的方法是啟動 liveCD/DVD/USB。

如果您繼續遇到意外行為並有更多理由相信這是由於錯誤(絕對必須檢查最新的次要核心版本),請繼續在kernel.org bugzilla上報告此問題。

引用自:https://unix.stackexchange.com/questions/60581