<p>Thanks!</p>
<p>What about the second patch?</p>
<p>The second patch: amdgpu: change proirity value to be consistent with kernel.</p>
<p>As I want to pass AMDGPU_CTX_PRIORITY_LOW to kernel module drm-scheduler, if these two patches are not applyed, </p>
<p>It can not pass LOW priority to drm-scheduler.</p>
<p>Do you have any other suggestion?</p>
<p><br><br><br><br><br><br>----</p>
<div id="cs2c_mail_sigature"></div>
<p> </p>
<div id="re" style="margin-left: 0.5em; padding-left: 0.5em; border-left: 1px solid green;"><br><br><br>
<div style="background-color: #f5f7fa;"><strong>主 题:</strong><span id="subject">Re: 回复: Re: [PATCH libdrm 1/2] amdgpu: fix parameter of amdgpu_cs_ctx_create2</span> <br><strong>日 期:</strong><span id="date">2024-01-09 15:15</span> <br><strong>发件人:</strong><span id="from">Christian König</span> <br><strong>收件人:</strong><span id="to" style="word-break: break-all;">李真能;Marek Olsak;Pierre-Eric Pelloux-Prayer;dri-devel;amd-gfx;</span></div>
<br>
<div id="content">
<div class="viewer_part" style="position: relative;">
<div>Am 09.01.24 um 02:50 schrieb 李真能:<br>
<p>When the priority value is passed to the kernel, the kernel compares it with the following values:</p>
<p>#define AMDGPU_CTX_PRIORITY_VERY_LOW -1023<br>#define AMDGPU_CTX_PRIORITY_LOW -512<br>#define AMDGPU_CTX_PRIORITY_NORMAL 0<br>#define AMDGPU_CTX_PRIORITY_HIGH 512<br>#define AMDGPU_CTX_PRIORITY_VERY_HIGH 1023</p>
<p>If priority is uint32_t, we can't set LOW and VERY_LOW value to kernel context priority,</p>
<br>Well that's nonsense.<br><br>How the kernel handles the values and how userspace handles them are two separate things. You just need to make sure that it's always 32 bits.<br><br>In other words if you have signed or unsigned data type in userspace is irrelevant for the kernel.<br><br>
<p>You can refer to the kernel function amdgpu_ctx_priority_permit, if priority is greater</p>
<p>than 0, and this process has not CAP_SYS_NICE capibility or DRM_MASTER permission,</p>
<p>this process will be exited.</p>
<br>Correct, that's intentional.<br><br>Regards,<br>Christian.<br><br>
<p><br><br><br><br><br>----</p>
<p> </p>
<div id="re" style="margin-left: 0.5em; padding-left: 0.5em; border-left: 1px solid green;"><br><br><br>
<div style="background-color: #f5f7fa;"><strong>主 题:</strong><span id="subject">Re: [PATCH libdrm 1/2] amdgpu: fix parameter of amdgpu_cs_ctx_create2</span> <br><strong>日 期:</strong><span id="date">2024-01-09 00:28</span> <br><strong>发件人:</strong><span id="from">Christian König</span> <br><strong>收件人:</strong><span id="to" style="word-break: break-all;">李真能;Marek Olsak;Pierre-Eric Pelloux-Prayer;dri-devel;amd-gfx;</span></div>
<br>
<div id="content">
<div class="viewer_part" style="position: relative;">
<div>Am 08.01.24 um 10:40 schrieb Zhenneng Li:<br>> In order to pass the correct priority parameter to the kernel,<br>> we must change priority type from uint32_t to int32_t.<br><br>Hui what? Why should it matter if the parameter is signed or not?<br><br>That doesn't seem to make sense.<br><br>Regards,<br>Christian.<br><br>><br>> Signed-off-by: Zhenneng Li <br>> ---<br>> amdgpu/amdgpu.h | 2 +-<br>> amdgpu/amdgpu_cs.c | 2 +-<br>> 2 files changed, 2 insertions(+), 2 deletions(-)<br>><br>> diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h<br>> index 9bdbf366..f46753f3 100644<br>> --- a/amdgpu/amdgpu.h<br>> +++ b/amdgpu/amdgpu.h<br>> @@ -896,7 +896,7 @@ int amdgpu_bo_list_update(amdgpu_bo_list_handle handle,<br>> *<br>> */<br>> int amdgpu_cs_ctx_create2(amdgpu_device_handle dev,<br>> - uint32_t priority,<br>> + int32_t priority,<br>> amdgpu_context_handle *context);<br>> /**<br>> * Create GPU execution Context<br>> diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c<br>> index 49fc16c3..eb72c638 100644<br>> --- a/amdgpu/amdgpu_cs.c<br>> +++ b/amdgpu/amdgpu_cs.c<br>> @@ -49,7 +49,7 @@ static int amdgpu_cs_reset_sem(amdgpu_semaphore_handle sem);<br>> * \return 0 on success otherwise POSIX Error code<br>> */<br>> drm_public int amdgpu_cs_ctx_create2(amdgpu_device_handle dev,<br>> - uint32_t priority,<br>> + int32_t priority,<br>> amdgpu_context_handle *context)<br>> {<br>> struct amdgpu_context *gpu_context;<br><br></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>