cpuidle子系統

消費電子產品對省電和性能的要求都比較苛刻,軟件系統設計要從“退出時的延遲”和“idle狀態下的功耗”兩個方面考慮,設計多種idle級別。對延遲較敏感的場合,可以使用低延遲、高功耗的idle;對延遲不敏感的場合,可以使用高延遲、低功耗的idle。對於linux系統就有一套專門的子系統來負責管理,這就是cpuidle子系統。

cpuidle子系統

cpuidle子系統主要有cpuidle core,cpuidle governors,cpuilde driver三部分。

cpuidle core是整個子系統的核心,包含以下功能:

向上層sched模塊提供接口;

以sysfs的形式,向用戶空間提供接口;

向下層的cpuidle drivers模塊,提供統一的driver註冊和管理接口;

向下層的governors模塊,提供統一的governor註冊和管理接口。

cpuidle driver負責idle機制的實現:

如何進入idle狀態,什麼條件下會退出,具體的idle級別是怎樣的;一般具體的soc有自己的cpuidle driver實現。

cpuidle governors負責idle狀態原因的策略:

具體什麼場景要實現什麼樣的idle級別都是由cpuidle governors決定。


分享到:


相關文章: