€•æ=Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ8/translations/zh_CN/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/zh_TW/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/it_IT/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/ja_JP/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/ko_KR/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/pt_BR/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/sp_SP/userspace-api/sysfs-platform_profile”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒEPlatform Profile Selection (e.g. /sys/firmware/acpi/platform_profile)”h]”hŒEPlatform Profile Selection (e.g. /sys/firmware/acpi/platform_profile)”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒR/var/lib/git/docbuild/linux/Documentation/userspace-api/sysfs-platform_profile.rst”h´KubhŒ paragraph”“”)”}”(hX+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).”h]”hX+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).”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒ¯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.”h]”hŒ¯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.”…””}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhÌ)”}”(hŒThe purpose of the platform_profile attribute is to offer a generic sysfs API for selecting the platform profile of these automatic mechanisms.”h]”hŒThe purpose of the platform_profile attribute is to offer a generic sysfs API for selecting the platform profile of these automatic mechanisms.”…””}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒñ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.”h]”hŒñ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.”…””}”(hh÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hX†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.”h]”hX†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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hX”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.”h]”(hXOSince 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 ”…””}”(hjh²hh³Nh´NubhŒemphasis”“”)”}”(hŒ*must*”h]”hŒmust”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ? map their internal profile representation onto this fixed set.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒ„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:”h]”hŒ„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:”…””}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K%hh·h²hubhŒ block_quote”“”)”}”(hŒÅ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. ”h]”hŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ6Explain why the existing profile names cannot be used.”h]”hÌ)”}”(hjRh]”hŒ6Explain why the existing profile names cannot be used.”…””}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jNhjKubjO)”}”(hŒ…Add the new profile name, along with a clear description of the expected behaviour, to the sysfs-platform_profile ABI documentation. ”h]”hÌ)”}”(hŒ„Add the new profile name, along with a clear description of the expected behaviour, to the sysfs-platform_profile ABI documentation.”h]”hŒ„Add the new profile name, along with a clear description of the expected behaviour, to the sysfs-platform_profile ABI documentation.”…””}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jNhjKubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jIhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´K(hh·h²hubh¶)”}”(hhh]”(h»)”}”(hŒ"Custom" profile support”h]”hŒ“Custom†profile support”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´K-ubhÌ)”}”(hŒð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.”h]”hŒö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.”…””}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K.hjh²hubeh}”(h]”Œcustom-profile-support”ah ]”h"]”Œ"custom" profile support”ah$]”h&]”uh1hµhh·h²hh³hÊh´K-ubh¶)”}”(hhh]”(h»)”}”(hŒMultiple driver support”h]”hŒMultiple driver support”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj·h²hh³hÊh´K4ubhÌ)”}”(hŒØ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.”h]”(hŒ¶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 ”…””}”(hjÈh²hh³Nh´NubhŒliteral”“”)”}”(hŒ``/sys/firmware/acpi``”h]”hŒ/sys/firmware/acpi”…””}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÈubhŒ interfaces.”…””}”(hjÈh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hj·h²hubhÌ)”}”(hŒqThis is to ensure there is no ambiguity on what the profile names mean when all handlers don't support a profile.”h]”hŒsThis is to ensure there is no ambiguity on what the profile names mean when all handlers don’t support a profile.”…””}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K9hj·h²hubhÌ)”}”(hŒ—Individual drivers will register a 'platform_profile' class device that has similar semantics as the ``/sys/firmware/acpi/platform_profile`` interface.”h]”(hŒiIndividual drivers will register a ‘platform_profile’ class device that has similar semantics as the ”…””}”(hjøh²hh³Nh´NubjÑ)”}”(hŒ'``/sys/firmware/acpi/platform_profile``”h]”hŒ#/sys/firmware/acpi/platform_profile”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjøubhŒ interface.”…””}”(hjøh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K