Loading Documentation/ABI/testing/sysfs-platform_profile 0 → 100644 +24 −0 Original line number Diff line number Diff line What: /sys/firmware/acpi/platform_profile_choices Date: October 2020 Contact: Hans de Goede <hdegoede@redhat.com> Description: This file contains a space-separated list of profiles supported for this device. Drivers must use the following standard profile-names: ============ ============================================ low-power Low power consumption cool Cooler operation quiet Quieter operation balanced Balance between low power consumption and performance performance High performance operation ============ ============================================ Userspace may expect drivers to offer more than one of these standard profile names. What: /sys/firmware/acpi/platform_profile Date: October 2020 Contact: Hans de Goede <hdegoede@redhat.com> Description: Reading this file gives the current selected profile for this device. Writing this file with one of the strings from platform_profile_choices changes the profile to the new value. Documentation/userspace-api/index.rst +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ place where this information is gathered. ioctl/index iommu media/index sysfs-platform_profile .. only:: subproject and html Loading Documentation/userspace-api/sysfs-platform_profile.rst 0 → 100644 +42 −0 Original line number Diff line number Diff line ===================================================================== Platform Profile Selection (e.g. /sys/firmware/acpi/platform_profile) ===================================================================== On modern systems the platform performance, temperature, fan and other hardware related characteristics are often dynamically configurable. The platform configuration is often automatically adjusted to the current conditions by some automatic mechanism (which may very well live outside the kernel). These auto platform adjustment mechanisms often can be configured with one of several platform profiles, with either a bias towards low power operation or towards performance. The purpose of the platform_profile attribute is to offer a generic sysfs API for selecting the platform profile of these automatic mechanisms. Note that this API is only for selecting the platform profile, it is NOT a goal of this API to allow monitoring the resulting performance characteristics. Monitoring performance is best done with device/vendor specific tools such as e.g. turbostat. Specifically when selecting a high performance profile the actual achieved performance may be limited by various factors such as: the heat generated by other components, room temperature, free air flow at the bottom of a laptop, etc. It is explicitly NOT a goal of this API to let userspace know about any sub-optimal conditions which are impeding reaching the requested performance level. Since numbers on their own cannot represent the multiple variables that a profile will adjust (power consumption, heat generation, etc) this API uses strings to describe the various profiles. To make sure that userspace gets a consistent experience the sysfs-platform_profile ABI document defines a fixed set of profile names. Drivers *must* map their internal profile representation onto this fixed set. If there is no good match when mapping then a new profile name may be added. Drivers which wish to introduce new profile names must: 1. Explain why the existing profile names canot be used. 2. Add the new profile name, along with a clear description of the expected behaviour, to the sysfs-platform_profile ABI documentation. drivers/acpi/Kconfig +17 −0 Original line number Diff line number Diff line Loading @@ -326,6 +326,23 @@ config ACPI_THERMAL To compile this driver as a module, choose M here: the module will be called thermal. config ACPI_PLATFORM_PROFILE tristate "ACPI Platform Profile Driver" default m help This driver adds support for platform-profiles on platforms that support it. Platform-profiles can be used to control the platform behaviour. For example whether to operate in a lower power mode, in a higher power performance mode or between the two. This driver provides the sysfs interface and is used as the registration point for platform specific drivers. Which profiles are supported is determined on a per-platform basis and should be obtained from the platform specific driver. config ACPI_CUSTOM_DSDT_FILE string "Custom DSDT Table file to include" default "" Loading drivers/acpi/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o obj-$(CONFIG_ACPI_PROCESSOR) += processor.o obj-$(CONFIG_ACPI) += container.o obj-$(CONFIG_ACPI_THERMAL) += thermal.o obj-$(CONFIG_ACPI_PLATFORM_PROFILE) += platform_profile.o obj-$(CONFIG_ACPI_NFIT) += nfit/ obj-$(CONFIG_ACPI_NUMA) += numa/ obj-$(CONFIG_ACPI) += acpi_memhotplug.o Loading Loading
Documentation/ABI/testing/sysfs-platform_profile 0 → 100644 +24 −0 Original line number Diff line number Diff line What: /sys/firmware/acpi/platform_profile_choices Date: October 2020 Contact: Hans de Goede <hdegoede@redhat.com> Description: This file contains a space-separated list of profiles supported for this device. Drivers must use the following standard profile-names: ============ ============================================ low-power Low power consumption cool Cooler operation quiet Quieter operation balanced Balance between low power consumption and performance performance High performance operation ============ ============================================ Userspace may expect drivers to offer more than one of these standard profile names. What: /sys/firmware/acpi/platform_profile Date: October 2020 Contact: Hans de Goede <hdegoede@redhat.com> Description: Reading this file gives the current selected profile for this device. Writing this file with one of the strings from platform_profile_choices changes the profile to the new value.
Documentation/userspace-api/index.rst +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ place where this information is gathered. ioctl/index iommu media/index sysfs-platform_profile .. only:: subproject and html Loading
Documentation/userspace-api/sysfs-platform_profile.rst 0 → 100644 +42 −0 Original line number Diff line number Diff line ===================================================================== Platform Profile Selection (e.g. /sys/firmware/acpi/platform_profile) ===================================================================== On modern systems the platform performance, temperature, fan and other hardware related characteristics are often dynamically configurable. The platform configuration is often automatically adjusted to the current conditions by some automatic mechanism (which may very well live outside the kernel). These auto platform adjustment mechanisms often can be configured with one of several platform profiles, with either a bias towards low power operation or towards performance. The purpose of the platform_profile attribute is to offer a generic sysfs API for selecting the platform profile of these automatic mechanisms. Note that this API is only for selecting the platform profile, it is NOT a goal of this API to allow monitoring the resulting performance characteristics. Monitoring performance is best done with device/vendor specific tools such as e.g. turbostat. Specifically when selecting a high performance profile the actual achieved performance may be limited by various factors such as: the heat generated by other components, room temperature, free air flow at the bottom of a laptop, etc. It is explicitly NOT a goal of this API to let userspace know about any sub-optimal conditions which are impeding reaching the requested performance level. Since numbers on their own cannot represent the multiple variables that a profile will adjust (power consumption, heat generation, etc) this API uses strings to describe the various profiles. To make sure that userspace gets a consistent experience the sysfs-platform_profile ABI document defines a fixed set of profile names. Drivers *must* map their internal profile representation onto this fixed set. If there is no good match when mapping then a new profile name may be added. Drivers which wish to introduce new profile names must: 1. Explain why the existing profile names canot be used. 2. Add the new profile name, along with a clear description of the expected behaviour, to the sysfs-platform_profile ABI documentation.
drivers/acpi/Kconfig +17 −0 Original line number Diff line number Diff line Loading @@ -326,6 +326,23 @@ config ACPI_THERMAL To compile this driver as a module, choose M here: the module will be called thermal. config ACPI_PLATFORM_PROFILE tristate "ACPI Platform Profile Driver" default m help This driver adds support for platform-profiles on platforms that support it. Platform-profiles can be used to control the platform behaviour. For example whether to operate in a lower power mode, in a higher power performance mode or between the two. This driver provides the sysfs interface and is used as the registration point for platform specific drivers. Which profiles are supported is determined on a per-platform basis and should be obtained from the platform specific driver. config ACPI_CUSTOM_DSDT_FILE string "Custom DSDT Table file to include" default "" Loading
drivers/acpi/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o obj-$(CONFIG_ACPI_PROCESSOR) += processor.o obj-$(CONFIG_ACPI) += container.o obj-$(CONFIG_ACPI_THERMAL) += thermal.o obj-$(CONFIG_ACPI_PLATFORM_PROFILE) += platform_profile.o obj-$(CONFIG_ACPI_NFIT) += nfit/ obj-$(CONFIG_ACPI_NUMA) += numa/ obj-$(CONFIG_ACPI) += acpi_memhotplug.o Loading