<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
Well completely agree that we shouldn't have unused API. That's why
I said we should remove the getting the hint from the UAPI.<br>
<br>
But what's wrong with setting it after creating the context? Don't
you know enough about the use case? I need to understand the
background a bit better here.<br>
<br>
Christian.<br>
<br>
<div class="moz-cite-prefix">Am 22.03.23 um 15:05 schrieb Marek
Olšák:<br>
</div>
<blockquote type="cite" cite="mid:CAAxE2A66ZF==rvDd8KFrfz79rXBB52vnWU7zsM+rfH69OV0Psw@mail.gmail.com">
<div dir="ltr">
<div>The option to change the hint after context creation and
get the hint would be unused uapi, and AFAIK we are not
supposed to add unused uapi. What I asked is to change it to a
uapi that userspace will actually use.<br>
</div>
<div><br>
</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Mar 21, 2023 at
9:54 AM Christian König <<a href="mailto:ckoenig.leichtzumerken@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div> Yes, I would like to avoid having multiple code paths
for context creation.<br>
<br>
Setting it later on should be equally to specifying it on
creation since we only need it during CS.<br>
<br>
Regards,<br>
Christian.<br>
<br>
<div>Am 21.03.23 um 14:00 schrieb Sharma, Shashank:<br>
</div>
<blockquote type="cite">
<div>
<p style="margin:0cm"><span style="font-size:10pt;font-family:"Arial",sans-serif;color:blue">[AMD
Official Use Only - General]</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span>When we started this patch
series, the workload hint was a part of the ctx_flag
only, </span></p>
<p class="MsoNormal"><span>But we changed that after the
design review, to make it more like how we are
handling PSTATE. </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Details: </span></p>
<p class="MsoNormal"><span><a href="https://patchwork.freedesktop.org/patch/496111/" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://patchwork.freedesktop.org/patch/496111/</a>
</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Regards</span></p>
<p class="MsoNormal"><span>Shashank </span></p>
<p class="MsoNormal"><span> </span></p>
<div style="border-color:rgb(225,225,225) currentcolor
currentcolor;border-style:solid none
none;border-width:1pt medium medium;padding:3pt 0cm
0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Marek Olšák <a href="mailto:maraeo@gmail.com" target="_blank" moz-do-not-send="true"><maraeo@gmail.com></a>
<br>
<b>Sent:</b> 21 March 2023 04:05<br>
<b>To:</b> Sharma, Shashank <a href="mailto:Shashank.Sharma@amd.com" target="_blank" moz-do-not-send="true"><Shashank.Sharma@amd.com></a><br>
<b>Cc:</b> <a href="mailto:amd-gfx@lists.freedesktop.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">amd-gfx@lists.freedesktop.org</a>;
Deucher, Alexander <a href="mailto:Alexander.Deucher@amd.com" target="_blank" moz-do-not-send="true"><Alexander.Deucher@amd.com></a>;
Somalapuram, Amaranath <a href="mailto:Amaranath.Somalapuram@amd.com" target="_blank" moz-do-not-send="true"><Amaranath.Somalapuram@amd.com></a>;
Koenig, Christian <a href="mailto:Christian.Koenig@amd.com" target="_blank" moz-do-not-send="true"><Christian.Koenig@amd.com></a><br>
<b>Subject:</b> Re: [PATCH v3 1/5] drm/amdgpu: add
UAPI for workload hints to ctx ioctl</span></p>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">I think we should do it
differently because this interface will be mostly
unused by open source userspace in its current
form.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Let's set the workload hint in
drm_amdgpu_ctx_in::flags, and that will be
immutable for the lifetime of the context. No
other interface is needed.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Marek</p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">On Mon, Sep 26, 2022 at 5:41 PM
Shashank Sharma <<a href="mailto:shashank.sharma@amd.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">shashank.sharma@amd.com</a>>
wrote:</p>
</div>
<blockquote style="border-color:currentcolor
currentcolor currentcolor
rgb(204,204,204);border-style:none none none
solid;border-width:medium medium medium
1pt;padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt
4.8pt">
<p class="MsoNormal" style="margin-bottom:12pt">Allow
the user to specify a workload hint to the kernel.<br>
We can use these to tweak the dpm heuristics to
better match<br>
the workload for improved performance.<br>
<br>
V3: Create only set() workload UAPI (Christian)<br>
<br>
Signed-off-by: Alex Deucher <<a href="mailto:alexander.deucher@amd.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">alexander.deucher@amd.com</a>><br>
Signed-off-by: Shashank Sharma <<a href="mailto:shashank.sharma@amd.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">shashank.sharma@amd.com</a>><br>
---<br>
include/uapi/drm/amdgpu_drm.h | 17
+++++++++++++++++<br>
1 file changed, 17 insertions(+)<br>
<br>
diff --git a/include/uapi/drm/amdgpu_drm.h
b/include/uapi/drm/amdgpu_drm.h<br>
index c2c9c674a223..23d354242699 100644<br>
--- a/include/uapi/drm/amdgpu_drm.h<br>
+++ b/include/uapi/drm/amdgpu_drm.h<br>
@@ -212,6 +212,7 @@ union drm_amdgpu_bo_list {<br>
#define AMDGPU_CTX_OP_QUERY_STATE2 4<br>
#define AMDGPU_CTX_OP_GET_STABLE_PSTATE 5<br>
#define AMDGPU_CTX_OP_SET_STABLE_PSTATE 6<br>
+#define AMDGPU_CTX_OP_SET_WORKLOAD_PROFILE 7<br>
<br>
/* GPU reset status */<br>
#define AMDGPU_CTX_NO_RESET 0<br>
@@ -252,6 +253,17 @@ union drm_amdgpu_bo_list {<br>
#define AMDGPU_CTX_STABLE_PSTATE_MIN_MCLK 3<br>
#define AMDGPU_CTX_STABLE_PSTATE_PEAK 4<br>
<br>
+/* GPU workload hints, flag bits 8-15 */<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_SHIFT 8<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_MASK (0xff
<< AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_NONE (0
<< AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_3D (1
<< AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_VIDEO (2
<< AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_VR (3
<< AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_COMPUTE (4
<< AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+#define AMDGPU_CTX_WORKLOAD_HINT_MAX
AMDGPU_CTX_WORKLOAD_HINT_COMPUTE<br>
+#define AMDGPU_CTX_WORKLOAD_INDEX(n) (n
>> AMDGPU_CTX_WORKLOAD_HINT_SHIFT)<br>
+<br>
struct drm_amdgpu_ctx_in {<br>
/** AMDGPU_CTX_OP_* */<br>
__u32 op;<br>
@@ -281,6 +293,11 @@ union drm_amdgpu_ctx_out {<br>
__u32 flags;<br>
__u32 _pad;<br>
} pstate;<br>
+<br>
+ struct {<br>
+ __u32 flags;<br>
+ __u32 _pad;<br>
+ } workload;<br>
};<br>
<br>
union drm_amdgpu_ctx {<br>
-- <br>
2.34.1</p>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>