1=====================================================================
2Platform Profile Selection (e.g. /sys/firmware/acpi/platform_profile)
3=====================================================================
4
5On modern systems the platform performance, temperature, fan and other
6hardware related characteristics are often dynamically configurable. The
7platform configuration is often automatically adjusted to the current
8conditions by some automatic mechanism (which may very well live outside
9the kernel).
10
11These auto platform adjustment mechanisms often can be configured with
12one of several platform profiles, with either a bias towards low power
13operation or towards performance.
14
15The purpose of the platform_profile attribute is to offer a generic sysfs
16API for selecting the platform profile of these automatic mechanisms.
17
18Note that this API is only for selecting the platform profile, it is
19NOT a goal of this API to allow monitoring the resulting performance
20characteristics. Monitoring performance is best done with device/vendor
21specific tools such as e.g. turbostat.
22
23Specifically when selecting a high performance profile the actual achieved
24performance may be limited by various factors such as: the heat generated
25by other components, room temperature, free air flow at the bottom of a
26laptop, etc. It is explicitly NOT a goal of this API to let userspace know
27about any sub-optimal conditions which are impeding reaching the requested
28performance level.
29
30Since numbers on their own cannot represent the multiple variables that a
31profile will adjust (power consumption, heat generation, etc) this API
32uses strings to describe the various profiles. To make sure that userspace
33gets a consistent experience the sysfs-platform_profile ABI document defines
34a fixed set of profile names. Drivers *must* map their internal profile
35representation onto this fixed set.
36
37If there is no good match when mapping then a new profile name may be
38added. Drivers which wish to introduce new profile names must:
39
40 1. Explain why the existing profile names cannot be used.
41 2. Add the new profile name, along with a clear description of the
42    expected behaviour, to the sysfs-platform_profile ABI documentation.
43