平臺配置檔案選擇 (例如 /sys/firmware/acpi/platform_profile)¶
在現代系統中,平臺效能、溫度、風扇和其他硬體相關特性通常是動態可配置的。平臺配置通常透過一些自動機制(很可能存在於核心之外)自動調整到當前條件。
這些自動平臺調整機制通常可以使用幾個平臺配置檔案之一進行配置,這些配置檔案要麼偏向於低功耗執行,要麼偏向於高效能。
platform_profile 屬性的目的是為選擇這些自動機制的平臺配置檔案提供通用的 sysfs API。
請注意,此 API 僅用於選擇平臺配置檔案,允許監視最終效能特性 *不是* 此 API 的目標。監視效能最好使用裝置/供應商特定的工具,例如 turbostat。
特別是當選擇高效能配置檔案時,實際達到的效能可能會受到各種因素的限制,例如:其他元件產生的熱量、室溫、筆記型電腦底部的自由氣流等。明確 *不是* 此 API 的目標是讓使用者空間瞭解任何阻礙達到所需效能水平的次優條件。
由於數字本身無法代表配置檔案將調整的多個變數(功耗、散熱等),因此此 API 使用字串來描述各種配置檔案。為了確保使用者空間獲得一致的體驗,sysfs-platform_profile ABI 文件定義了一組固定的配置檔名稱。驅動程式 *必須* 將其內部配置檔案表示對映到此固定集。
如果對映時沒有很好的匹配,則可以新增新的配置檔名稱。希望引入新的配置檔名稱的驅動程式必須
解釋為什麼不能使用現有的配置檔名稱。
將新的配置檔名稱以及對預期行為的清晰描述新增到 sysfs-platform_profile ABI 文件中。
“自定義”配置檔案支援¶
platform_profile 類還支援通告“自定義”配置檔案的配置檔案。這旨在由驅動程式在驅動程式中的設定以某種方式修改,以至於標準配置檔案無法代表當前狀態時設定。
多驅動程式支援¶
當系統上的多個驅動程式通告平臺配置檔案處理程式時,平臺配置檔案處理程式核心將僅向 /sys/firmware/acpi 介面通告所有驅動程式之間通用的配置檔案。
這是為了確保在所有處理程式都不支援配置檔案時,配置檔名稱的含義沒有歧義。
各個驅動程式將註冊一個 'platform_profile' 類裝置,該裝置具有與 /sys/firmware/acpi/platform_profile 介面類似的語義。
要發現哪個驅動程式與平臺配置檔案處理程式相關聯,使用者可以讀取類裝置的 name 屬性。
要從類介面發現可用配置檔案,使用者可以讀取 choices 屬性。
如果使用者想要為特定驅動程式選擇配置檔案,他們可以透過寫入驅動程式類裝置的 profile 屬性來實現。
這將允許使用者在同一系統上為不同的驅動程式設定不同的配置檔案。如果各個驅動程式選擇的配置檔案不同,平臺配置檔案處理程式核心將顯示配置檔案“custom”,以指示配置檔案不相同。
當 platform_profile 屬性的值為 custom 時,將來自 platform_profile_choices 的通用配置檔案寫入平臺配置檔案處理程式核心的 platform_profile 屬性將為所有驅動程式設定配置檔案。