| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- =====================================================================
- 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, 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 cannot be used.
- 2. Add the new profile name, along with a clear description of the
- expected behaviour, to the sysfs-platform_profile ABI documentation.
- "Custom" profile support
- ========================
- The platform_profile class also supports profiles advertising a "custom"
- profile. This is intended to be set by drivers when the settings in the
- driver have been modified in a way that a standard profile doesn't represent
- the current state.
- Multiple driver support
- =======================
- When multiple drivers on a system advertise a platform profile handler, the
- platform profile handler core will only advertise the profiles that are
- common between all drivers to the ``/sys/firmware/acpi`` interfaces.
- This is to ensure there is no ambiguity on what the profile names mean when
- all handlers don't support a profile.
- Individual drivers will register a 'platform_profile' class device that has
- similar semantics as the ``/sys/firmware/acpi/platform_profile`` interface.
- To discover which driver is associated with a platform profile handler the
- user can read the ``name`` attribute of the class device.
- To discover available profiles from the class interface the user can read the
- ``choices`` attribute.
- If a user wants to select a profile for a specific driver, they can do so
- by writing to the ``profile`` attribute of the driver's class device.
- This will allow users to set different profiles for different drivers on the
- same system. If the selected profile by individual drivers differs the
- platform profile handler core will display the profile 'custom' to indicate
- that the profiles are not the same.
- While the ``platform_profile`` attribute has the value ``custom``, writing a
- common profile from ``platform_profile_choices`` to the platform_profile
- attribute of the platform profile handler core will set the profile for all
- drivers.
|