<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=utf-8">
<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:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Aptos;}
@font-face
{font-family:"\@DengXian";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Arial",sans-serif;
color:windowtext;}
.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="#467886" vlink="#96607D" 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="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">Ye , that’s guide line , I believe that’s align with our legacy kiq usage .
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">Shaoyun.liu<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Chen, Michael <Michael.Chen@amd.com>
<br>
<b>Sent:</b> Tuesday, April 29, 2025 3:20 PM<br>
<b>To:</b> Alex Deucher <alexdeucher@gmail.com>; Liu, Shaoyun <Shaoyun.Liu@amd.com><br>
<b>Cc:</b> Deucher, Alexander <Alexander.Deucher@amd.com>; amd-gfx@lists.freedesktop.org; Khatri, Sunil <Sunil.Khatri@amd.com>; Liang, Prike <Prike.Liang@amd.com><br>
<b>Subject:</b> Re: [PATCH 5/8] drm/amdgpu/mes12: add support for setting gang submit<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p style="margin:5.0pt"><span style="font-size:10.0pt;font-family:"Calibri",sans-serif;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="color:black">All legacy / kernel queues related ops (add / remove / reset) can go through KIQ pipe. Non queue related ops (read_reg / write_reg etc.) can go through KIQ pipe too.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">All user queues related ops should go through SCHED pipe<o:p></o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="1" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black"> Alex Deucher <</span><a href="mailto:alexdeucher@gmail.com"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">alexdeucher@gmail.com</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">><br>
<b>Sent:</b> Tuesday, April 29, 2025 3:05 PM<br>
<b>To:</b> Liu, Shaoyun <</span><a href="mailto:Shaoyun.Liu@amd.com"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Shaoyun.Liu@amd.com</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">><br>
<b>Cc:</b> Chen, Michael <</span><a href="mailto:Michael.Chen@amd.com"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Michael.Chen@amd.com</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">>; Deucher, Alexander
<</span><a href="mailto:Alexander.Deucher@amd.com"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Alexander.Deucher@amd.com</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">>;
</span><a href="mailto:amd-gfx@lists.freedesktop.org"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">amd-gfx@lists.freedesktop.org</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black"> <</span><a href="mailto:amd-gfx@lists.freedesktop.org"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">amd-gfx@lists.freedesktop.org</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">>;
Khatri, Sunil <</span><a href="mailto:Sunil.Khatri@amd.com"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Sunil.Khatri@amd.com</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">>; Liang, Prike <</span><a href="mailto:Prike.Liang@amd.com"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Prike.Liang@amd.com</span></a><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">><br>
<b>Subject:</b> Re: [PATCH 5/8] drm/amdgpu/mes12: add support for setting gang submit</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">On Tue, Apr 29, 2025 at 2:56</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:11.0pt">PM Liu, Shaoyun <</span><a href="mailto:Shaoyun.Liu@amd.com"><span style="font-size:11.0pt">Shaoyun.Liu@amd.com</span></a><span style="font-size:11.0pt">>
wrote:<br>
><br>
> [AMD Official Use Only - AMD Internal Distribution Only]<br>
><br>
> Correctly , the gang submission related stuff only used for scheduler pipe , kiq is for used for kernel driver only and should not expose to the user queue.<br>
<br>
What about kernel queues mapped through MES? Do those need to go<br>
through KIQ or is SCHED ok? They seem to go through KIQ today. Is<br>
going through SCHED ok?<br>
<br>
Alex<br>
<br>
<br>
><br>
> Regards<br>
> Shaoyun.liu<br>
><br>
> -----Original Message-----<br>
> From: amd-gfx <</span><a href="mailto:amd-gfx-bounces@lists.freedesktop.org"><span style="font-size:11.0pt">amd-gfx-bounces@lists.freedesktop.org</span></a><span style="font-size:11.0pt">> On Behalf Of Alex Deucher<br>
> Sent: Tuesday, April 29, 2025 2:39 PM<br>
> To: Chen, Michael <</span><a href="mailto:Michael.Chen@amd.com"><span style="font-size:11.0pt">Michael.Chen@amd.com</span></a><span style="font-size:11.0pt">><br>
> Cc: Deucher, Alexander <</span><a href="mailto:Alexander.Deucher@amd.com"><span style="font-size:11.0pt">Alexander.Deucher@amd.com</span></a><span style="font-size:11.0pt">>;
</span><a href="mailto:amd-gfx@lists.freedesktop.org"><span style="font-size:11.0pt">amd-gfx@lists.freedesktop.org</span></a><span style="font-size:11.0pt">; Khatri, Sunil <</span><a href="mailto:Sunil.Khatri@amd.com"><span style="font-size:11.0pt">Sunil.Khatri@amd.com</span></a><span style="font-size:11.0pt">>;
Liang, Prike <</span><a href="mailto:Prike.Liang@amd.com"><span style="font-size:11.0pt">Prike.Liang@amd.com</span></a><span style="font-size:11.0pt">><br>
> Subject: Re: [PATCH 5/8] drm/amdgpu/mes12: add support for setting gang submit<br>
><br>
> On Tue, Apr 29, 2025 at 2:23</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:11.0pt">PM Chen, Michael <</span><a href="mailto:Michael.Chen@amd.com"><span style="font-size:11.0pt">Michael.Chen@amd.com</span></a><span style="font-size:11.0pt">>
wrote:<br>
> ><br>
> > [Public]<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > ________________________________<br>
> > From: amd-gfx <</span><a href="mailto:amd-gfx-bounces@lists.freedesktop.org"><span style="font-size:11.0pt">amd-gfx-bounces@lists.freedesktop.org</span></a><span style="font-size:11.0pt">> on behalf of<br>
> > Alex Deucher <</span><a href="mailto:alexander.deucher@amd.com"><span style="font-size:11.0pt">alexander.deucher@amd.com</span></a><span style="font-size:11.0pt">><br>
> > Sent: Monday, April 28, 2025 5:20 PM<br>
> > To: </span><a href="mailto:amd-gfx@lists.freedesktop.org"><span style="font-size:11.0pt">amd-gfx@lists.freedesktop.org</span></a><span style="font-size:11.0pt"> <</span><a href="mailto:amd-gfx@lists.freedesktop.org"><span style="font-size:11.0pt">amd-gfx@lists.freedesktop.org</span></a><span style="font-size:11.0pt">><br>
> > Cc: Deucher, Alexander <</span><a href="mailto:Alexander.Deucher@amd.com"><span style="font-size:11.0pt">Alexander.Deucher@amd.com</span></a><span style="font-size:11.0pt">>; Khatri, Sunil<br>
> > <</span><a href="mailto:Sunil.Khatri@amd.com"><span style="font-size:11.0pt">Sunil.Khatri@amd.com</span></a><span style="font-size:11.0pt">>; Liang, Prike <</span><a href="mailto:Prike.Liang@amd.com"><span style="font-size:11.0pt">Prike.Liang@amd.com</span></a><span style="font-size:11.0pt">><br>
> > Subject: [PATCH 5/8] drm/amdgpu/mes12: add support for setting gang<br>
> > submit<br>
> ><br>
> > Enable a primary and secondary queue that schedule together.<br>
> ><br>
> > v2: fix offset of api_status (Prike)<br>
> ><br>
> > Acked-by: Sunil Khatri <</span><a href="mailto:sunil.khatri@amd.com"><span style="font-size:11.0pt">sunil.khatri@amd.com</span></a><span style="font-size:11.0pt">><br>
> > Reviewed-by: Prike Liang <</span><a href="mailto:Prike.Liang@amd.com"><span style="font-size:11.0pt">Prike.Liang@amd.com</span></a><span style="font-size:11.0pt">><br>
> > Signed-off-by: Alex Deucher <</span><a href="mailto:alexander.deucher@amd.com"><span style="font-size:11.0pt">alexander.deucher@amd.com</span></a><span style="font-size:11.0pt">><br>
> > ---<br>
> > drivers/gpu/drm/amd/amdgpu/mes_v12_0.c | 28<br>
> > ++++++++++++++++++++++++++<br>
> > 1 file changed, 28 insertions(+)<br>
> ><br>
> > diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c<br>
> > b/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c<br>
> > index f9f2fbc0a7166..57d8b78210f9f 100644<br>
> > --- a/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c<br>
> > +++ b/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c<br>
> > @@ -879,6 +879,33 @@ static int mes_v12_0_reset_hw_queue(struct amdgpu_mes *mes,<br>
> > offsetof(union MESAPI__RESET, api_status));<br>
> > }<br>
> ><br>
> > +static int mes_v12_0_set_gang_submit(struct amdgpu_mes *mes,<br>
> > + struct mes_set_gang_submit_input<br>
> > +*input) {<br>
> > + union MESAPI__SET_GANG_SUBMIT mes_gang_submit_pkt;<br>
> > + int pipe;<br>
> > +<br>
> > + memset(&mes_gang_submit_pkt, 0, sizeof(mes_gang_submit_pkt));<br>
> > +<br>
> > + mes_gang_submit_pkt.header.type = MES_API_TYPE_SCHEDULER;<br>
> > + mes_gang_submit_pkt.header.opcode = MES_SCH_API_SET_GANG_SUBMIT;<br>
> > + mes_gang_submit_pkt.header.dwsize = API_FRAME_SIZE_IN_DWORDS;<br>
> > +<br>
> > + mes_gang_submit_pkt.set_gang_submit.gang_context_addr =<br>
> > + input->primary_gang_context_addr;<br>
> > + mes_gang_submit_pkt.set_gang_submit.slave_gang_context_addr =<br>
> > + input->secondary_gang_context_addr;<br>
> > +<br>
> > + if (mes->adev->enable_uni_mes)<br>
> > + pipe = AMDGPU_MES_KIQ_PIPE;<br>
> > + else<br>
> > + pipe = AMDGPU_MES_SCHED_PIPE;<br>
> ><br>
> > I think this packet should be always submitted to<br>
> > AMDGPU_MES_SCHED_PIPE, same pipe as in mes_v12_0_add_hw_queue where the queue is created.<br>
> > This is because HWS on AMDGPU_MES_KIQ_PIPE does not have the queue information.<br>
><br>
> Sounds like the reset queue function and the map and unmap legacy queues should also be changed?<br>
><br>
> Alex<br>
><br>
> ><br>
> > +<br>
> > + return mes_v12_0_submit_pkt_and_poll_completion(mes, pipe,<br>
> > + &mes_gang_submit_pkt, sizeof(mes_gang_submit_pkt),<br>
> > + offsetof(union MESAPI__SET_GANG_SUBMIT,<br>
> > +api_status)); }<br>
> > +<br>
> > static const struct amdgpu_mes_funcs mes_v12_0_funcs = {<br>
> > .add_hw_queue = mes_v12_0_add_hw_queue,<br>
> > .remove_hw_queue = mes_v12_0_remove_hw_queue, @@ -888,6<br>
> > +915,7 @@ static const struct amdgpu_mes_funcs mes_v12_0_funcs = {<br>
> > .resume_gang = mes_v12_0_resume_gang,<br>
> > .misc_op = mes_v12_0_misc_op,<br>
> > .reset_hw_queue = mes_v12_0_reset_hw_queue,<br>
> > + .set_gang_submit = mes_v12_0_set_gang_submit,<br>
> > };<br>
> ><br>
> > static int mes_v12_0_allocate_ucode_buffer(struct amdgpu_device<br>
> > *adev,<br>
> > --<br>
> > 2.49.0<br>
> ><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>