Intel 效能和能耗偏向提示¶
- 版權:
© 2019 Intel Corporation
- 作者:
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
效能和能耗偏向提示(EPB)允許軟體指定其在處理器中功率-效能權衡方面的偏好。通常,EPB 預期由使用者空間設定(直接透過 sysfs 或藉助 x86_energy_perf_policy 工具),但核心更新它有兩個原因。
首先,有些系統在全系統從睡眠狀態轉換回工作狀態期間,平臺韌體會重置 EPB,這實際上導致使用者空間之前的 EPB 更新丟失。因此,核心需要在全系統轉換到睡眠狀態期間儲存所有 CPU 的當前 EPB 值,並在返回工作狀態時恢復它們。這可以透過在轉換到系統睡眠狀態期間,當輔助 CPU 離線時儲存它們的 EPB,以及在 syscore 掛起操作中儲存引導 CPU 的 EPB 來實現,這樣它就可以在 syscore 恢復操作中為引導 CPU 恢復,並在其他 CPU 重新上線時為它們恢復。然而,當全系統 PM 轉換開始時已經離線的 CPU 不會再次離線,但它們的 EPB 值可能仍會在轉換期間被平臺韌體重置,所以實際上,需要始終儲存任何離線 CPU 的 EPB,並在給定 CPU 重新上線時恢復它。
其次,在許多系統上,來自平臺韌體的初始 EPB 值為 0(“效能”),至少在其中一些系統上,這是因為平臺韌體根本沒有初始化 EPB,並假設作業系統會這樣做。這有時是有問題的,因為它可能導致系統電池消耗過快,例如,所以最好在 CPU 啟動時進行調整,如果給定 CPU 的初始 EPB 值為 0,核心會將其更改為 6(“正常”)。
sysfs 中的 Intel 效能和能耗偏向屬性¶
給定(邏輯)CPU 的 Intel 效能和能耗偏向提示(EPB)值可以透過 /sys/devices/system/cpu/cpu<N>/power/ 下的一個 sysfs 屬性(檔案)進行檢查或更新,其中 CPU 編號 <N> 在系統初始化時分配。
energy_perf_bias顯示 CPU 當前的 EPB 值,範圍為 0 - 15,其中 0 對應於最高效能的提示偏好,15 對應於最大的節能效果。
為了更新 CPU 的 EPB 值,可以寫入此屬性,寫入一個 0 - 15 範圍內的數字,或者寫入以下字串之一:“performance”、“balance-performance”、“normal”、“balance-power”、“power”,這些字串代表了其含義所反映的值。
此屬性存在於所有支援 EPB 功能的線上 CPU 上。
請注意,儘管到處理器的 EPB 介面是在邏輯 CPU 級別定義的,但其背後的物理暫存器可能由多個 CPU 共享(例如,SMT 同級或一個封裝中的核心)。因此,更新一個 CPU 的 EPB 值可能會導致其他 CPU 的 EPB 值發生變化。