<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<p style="font-family:Calibri;font-size:10pt;color:#0000FF;margin:5pt;font-style:normal;font-weight:normal;text-decoration:none;" align="Left">
[AMD Official Use Only - AMD Internal Distribution Only]<br>
</p>
<br>
<div>
<div class="WordSection1">
<p class="MsoPlainText">Series is<o:p></o:p></p>
<p class="MsoPlainText">Reviewed-by: Asad Kamal <<a href="mailto:asad.kamal@amd.com">asad.kamal@amd.com</a>><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks & Regards<o:p></o:p></p>
<p class="MsoPlainText">Asad<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Deucher, Alexander <Alexander.Deucher@amd.com> <br>
<b>Sent:</b> Friday, May 17, 2024 12:57 AM<br>
<b>To:</b> Lazar, Lijo <Lijo.Lazar@amd.com>; amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Zhang, Hawking <Hawking.Zhang@amd.com>; Kamal, Asad <Asad.Kamal@amd.com>; Ma, Le <Le.Ma@amd.com><br>
<b>Subject:</b> Re: [PATCH v5 10/10] Documentation/amdgpu: Add PM policy documentation<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p style="margin:5.0pt"><span style="font-size:10.0pt;color:blue">[AMD Official Use Only - AMD Internal Distribution Only]<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">I didn't have time to go through every patch in detail, but overall it looks good to me.  The series is:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">Acked-by: Alex Deucher <<a href="mailto:alexander.deucher@amd.com">alexander.deucher@amd.com</a>><o:p></o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Lazar, Lijo <<a href="mailto:Lijo.Lazar@amd.com">Lijo.Lazar@amd.com</a>><br>
<b>Sent:</b> Thursday, May 16, 2024 8:43 AM<br>
<b>To:</b> <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a> <<a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a>><br>
<b>Cc:</b> Zhang, Hawking <<a href="mailto:Hawking.Zhang@amd.com">Hawking.Zhang@amd.com</a>>; Deucher, Alexander <<a href="mailto:Alexander.Deucher@amd.com">Alexander.Deucher@amd.com</a>>; Kamal, Asad <<a href="mailto:Asad.Kamal@amd.com">Asad.Kamal@amd.com</a>>;
 Ma, Le <<a href="mailto:Le.Ma@amd.com">Le.Ma@amd.com</a>><br>
<b>Subject:</b> [PATCH v5 10/10] Documentation/amdgpu: Add PM policy documentation</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Add documentation about the newly added pm_policy node in sysfs.<br>
<br>
Signed-off-by: Lijo Lazar <<a href="mailto:lijo.lazar@amd.com">lijo.lazar@amd.com</a>><br>
---<br>
<br>
v5: Update documentation to reflect pm_policy nodes and sub nodes for each<br>
policy type<br>
<br>
 Documentation/gpu/amdgpu/thermal.rst |  6 ++++<br>
 drivers/gpu/drm/amd/pm/amdgpu_pm.c   | 53 ++++++++++++++++++++++++++++<br>
 2 files changed, 59 insertions(+)<br>
<br>
diff --git a/Documentation/gpu/amdgpu/thermal.rst b/Documentation/gpu/amdgpu/thermal.rst<br>
index 2f6166f81e6a..6d942b5c58f0 100644<br>
--- a/Documentation/gpu/amdgpu/thermal.rst<br>
+++ b/Documentation/gpu/amdgpu/thermal.rst<br>
@@ -49,6 +49,12 @@ pp_power_profile_mode<br>
 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c<br>
    :doc: pp_power_profile_mode<br>
 <br>
+pm_policy<br>
+---------------------<br>
+<br>
+.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c<br>
+   :doc: pm_policy<br>
+<br>
 \*_busy_percent<br>
 ---------------<br>
 <br>
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c<br>
index 5ff7783dfc43..3e5ffb83f398 100644<br>
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c<br>
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c<br>
@@ -2220,6 +2220,59 @@ struct amdgpu_pm_policy_attr {<br>
         enum pp_pm_policy id;<br>
 };<br>
 <br>
+/**<br>
+ * DOC: pm_policy<br>
+ *<br>
+ * Certain SOCs can support different power policies to optimize application<br>
+ * performance. However, this policy is provided only at SOC level and not at a<br>
+ * per-process level. This is useful especially when entire SOC is utilized for<br>
+ * dedicated workload.<br>
+ *<br>
+ * The amdgpu driver provides a sysfs API for selecting the policy. Presently,<br>
+ * only two types of policies are supported through this interface.<br>
+ *<br>
+ *  Pstate Policy Selection - This is to select different Pstate profiles which<br>
+ *  decides clock/throttling preferences.<br>
+ *<br>
+ *  XGMI PLPD Policy Selection - When multiple devices are connected over XGMI,<br>
+ *  this helps to select policy to be applied for per link power down.<br>
+ *<br>
+ * The list of available policies and policy levels vary between SOCs. They can<br>
+ * be viewed under pm_policy node directory. If SOC doesn't support any policy,<br>
+ * this node won't be available. The different policies supported will be<br>
+ * available as separate nodes under pm_policy.<br>
+ *<br>
+ *     cat /sys/bus/pci/devices/.../pm_policy/<policy_type><br>
+ *<br>
+ * Reading the policy file shows the different levels supported. The level which<br>
+ * is applied presently is denoted by * (asterisk). E.g.,<br>
+ *<br>
+ * .. code-block:: console<br>
+ *<br>
+ *     cat /sys/bus/pci/devices/.../pm_policy/soc_pstate<br>
+ *     0 : soc_pstate_default<br>
+ *     1 : soc_pstate_0<br>
+ *     2 : soc_pstate_1*<br>
+ *     3 : soc_pstate_2<br>
+ *<br>
+ *     cat /sys/bus/pci/devices/.../pm_policy/xgmi_plpd<br>
+ *     0 : plpd_disallow<br>
+ *     1 : plpd_default<br>
+ *     2 : plpd_optimized*<br>
+ *<br>
+ * To apply a specific policy<br>
+ *<br>
+ * "echo  <level> > /sys/bus/pci/devices/.../pm_policy/<policy_type>"<br>
+ *<br>
+ * For the levels listed in the example above, to select "plpd_optimized" for<br>
+ * XGMI and "soc_pstate_2" for soc pstate policy -<br>
+ *<br>
+ * .. code-block:: console<br>
+ *<br>
+ *     echo "2" > /sys/bus/pci/devices/.../pm_policy/xgmi_plpd<br>
+ *     echo "3" > /sys/bus/pci/devices/.../pm_policy/soc_pstate<br>
+ *<br>
+ */<br>
 static ssize_t amdgpu_get_pm_policy_attr(struct device *dev,<br>
                                          struct device_attribute *attr,<br>
                                          char *buf)<br>
-- <br>
2.25.1<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>