平台配置文件选择 (例如 /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 属性将为所有驱动程序设置配置文件。