€•=Œ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Œ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 such as 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 such as 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.”…””}”(hhñhž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 ”…””}”(hhÿhžhhŸNh NubhŒemphasis”“”)”}”(hŒ*must*”h]”hŒmust”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÿubhŒ? map their internal profile representation onto this fixed set.”…””}”(hhÿhž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:”…””}”(hj!hž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¸)”}”(hj>h]”hŒ6Explain why the existing profile names cannot be used.”…””}”(hj@hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K(hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j:hj7ubj;)”}”(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.”…””}”(hjWhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K)hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j:hj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1j5hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K(hh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ"Custom" profile support”h]”hŒ“Custom†profile support”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj|hž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 setttings 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 setttings in the driver have been modified in a way that a standard profile doesn’t represent the current state.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K.hj|hž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”…””}”(hjìhž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