diff mbox series

[1/2] drm/amdgpu: Unset context priority is now invalid

Message ID 20231017035656.8211-1-luben.tuikov@amd.com (mailing list archive)
State New, archived
Headers show
Series [1/2] drm/amdgpu: Unset context priority is now invalid | expand

Commit Message

Luben Tuikov Oct. 17, 2023, 3:56 a.m. UTC
A context priority value of AMD_CTX_PRIORITY_UNSET is now invalid--instead of
carrying it around and passing it to the Direct Rendering Manager--and it
becomes AMD_CTX_PRIORITY_NORMAL in amdgpu_ctx_ioctl(), the gateway to context
creation.

Cc: Alex Deucher <Alexander.Deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: dc9b2e683bcba017588b9aaad80f442ad004a48f

Comments

Alex Deucher Oct. 17, 2023, 1:22 p.m. UTC | #1
On Tue, Oct 17, 2023 at 12:52 AM Luben Tuikov <luben.tuikov@amd.com> wrote:
>
> A context priority value of AMD_CTX_PRIORITY_UNSET is now invalid--instead of
> carrying it around and passing it to the Direct Rendering Manager--and it
> becomes AMD_CTX_PRIORITY_NORMAL in amdgpu_ctx_ioctl(), the gateway to context
> creation.
>
> Cc: Alex Deucher <Alexander.Deucher@amd.com>
> Cc: Christian König <christian.koenig@amd.com>
> Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
> index 0dc9c655c4fbdb..092962b93064fc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
> @@ -47,7 +47,6 @@ const unsigned int amdgpu_ctx_num_entities[AMDGPU_HW_IP_NUM] = {
>  bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
>  {
>         switch (ctx_prio) {
> -       case AMDGPU_CTX_PRIORITY_UNSET:
>         case AMDGPU_CTX_PRIORITY_VERY_LOW:
>         case AMDGPU_CTX_PRIORITY_LOW:
>         case AMDGPU_CTX_PRIORITY_NORMAL:
> @@ -55,6 +54,7 @@ bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
>         case AMDGPU_CTX_PRIORITY_VERY_HIGH:
>                 return true;
>         default:
> +       case AMDGPU_CTX_PRIORITY_UNSET:
>                 return false;

I  don't recall if any userspace uses this, but this would break
userspace if it does.

Alex

>         }
>  }
>
> base-commit: dc9b2e683bcba017588b9aaad80f442ad004a48f
> --
> 2.42.0
>
Luben Tuikov Oct. 17, 2023, 2:26 p.m. UTC | #2
On 2023-10-17 09:22, Alex Deucher wrote:
> On Tue, Oct 17, 2023 at 12:52 AM Luben Tuikov <luben.tuikov@amd.com> wrote:
>>
>> A context priority value of AMD_CTX_PRIORITY_UNSET is now invalid--instead of
>> carrying it around and passing it to the Direct Rendering Manager--and it
>> becomes AMD_CTX_PRIORITY_NORMAL in amdgpu_ctx_ioctl(), the gateway to context
>> creation.
>>
>> Cc: Alex Deucher <Alexander.Deucher@amd.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
>> ---
>>  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> index 0dc9c655c4fbdb..092962b93064fc 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> @@ -47,7 +47,6 @@ const unsigned int amdgpu_ctx_num_entities[AMDGPU_HW_IP_NUM] = {
>>  bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
>>  {
>>         switch (ctx_prio) {
>> -       case AMDGPU_CTX_PRIORITY_UNSET:
>>         case AMDGPU_CTX_PRIORITY_VERY_LOW:
>>         case AMDGPU_CTX_PRIORITY_LOW:
>>         case AMDGPU_CTX_PRIORITY_NORMAL:
>> @@ -55,6 +54,7 @@ bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
>>         case AMDGPU_CTX_PRIORITY_VERY_HIGH:
>>                 return true;
>>         default:
>> +       case AMDGPU_CTX_PRIORITY_UNSET:
>>                 return false;
> 
> I  don't recall if any userspace uses this, but this would break
> userspace if it does.

This is shielded from user space in the following manner,
1) amdgpu_ctx_priority_is_valid() is called from amdgpu_ctx_ioctl() and
   if amdgpu_ctx_priority_is_valid() returns false, we set the priority to NORMAL.
   See the 2nd patch.
2) It is also called from amdgpu_ctx_priority_permit(), which is called
   from amdgpu_ctx_init() which is called from amdgpu_ctx_alloc() which
   is called from amdgpu_ctx_ioctl(), _after_ the call described above,
   and thus priority is now NORMAL.

Plus I'm typing this on a running system with 6.6.0 + those two patches.

User space can send us down UNSET, but we set it to NORMAL.

Can I get an R-B?

> 
> Alex
> 
>>         }
>>  }
>>
>> base-commit: dc9b2e683bcba017588b9aaad80f442ad004a48f
>> --
>> 2.42.0
>>
Alex Deucher Oct. 17, 2023, 7:16 p.m. UTC | #3
On Tue, Oct 17, 2023 at 10:27 AM Luben Tuikov <luben.tuikov@amd.com> wrote:
>
> On 2023-10-17 09:22, Alex Deucher wrote:
> > On Tue, Oct 17, 2023 at 12:52 AM Luben Tuikov <luben.tuikov@amd.com> wrote:
> >>
> >> A context priority value of AMD_CTX_PRIORITY_UNSET is now invalid--instead of
> >> carrying it around and passing it to the Direct Rendering Manager--and it
> >> becomes AMD_CTX_PRIORITY_NORMAL in amdgpu_ctx_ioctl(), the gateway to context
> >> creation.
> >>
> >> Cc: Alex Deucher <Alexander.Deucher@amd.com>
> >> Cc: Christian König <christian.koenig@amd.com>
> >> Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
> >> ---
> >>  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
> >> index 0dc9c655c4fbdb..092962b93064fc 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
> >> @@ -47,7 +47,6 @@ const unsigned int amdgpu_ctx_num_entities[AMDGPU_HW_IP_NUM] = {
> >>  bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
> >>  {
> >>         switch (ctx_prio) {
> >> -       case AMDGPU_CTX_PRIORITY_UNSET:
> >>         case AMDGPU_CTX_PRIORITY_VERY_LOW:
> >>         case AMDGPU_CTX_PRIORITY_LOW:
> >>         case AMDGPU_CTX_PRIORITY_NORMAL:
> >> @@ -55,6 +54,7 @@ bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
> >>         case AMDGPU_CTX_PRIORITY_VERY_HIGH:
> >>                 return true;
> >>         default:
> >> +       case AMDGPU_CTX_PRIORITY_UNSET:
> >>                 return false;
> >
> > I  don't recall if any userspace uses this, but this would break
> > userspace if it does.
>
> This is shielded from user space in the following manner,
> 1) amdgpu_ctx_priority_is_valid() is called from amdgpu_ctx_ioctl() and
>    if amdgpu_ctx_priority_is_valid() returns false, we set the priority to NORMAL.
>    See the 2nd patch.

Ah, I see.  Thanks.  Series is:
Acked-by: Alex Deucher <alexander.deucher@amd.com>


> 2) It is also called from amdgpu_ctx_priority_permit(), which is called
>    from amdgpu_ctx_init() which is called from amdgpu_ctx_alloc() which
>    is called from amdgpu_ctx_ioctl(), _after_ the call described above,
>    and thus priority is now NORMAL.
>
> Plus I'm typing this on a running system with 6.6.0 + those two patches.
>
> User space can send us down UNSET, but we set it to NORMAL.
>
> Can I get an R-B?
>
> >
> > Alex
> >
> >>         }
> >>  }
> >>
> >> base-commit: dc9b2e683bcba017588b9aaad80f442ad004a48f
> >> --
> >> 2.42.0
> >>
>
> --
> Regards,
> Luben
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
index 0dc9c655c4fbdb..092962b93064fc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
@@ -47,7 +47,6 @@  const unsigned int amdgpu_ctx_num_entities[AMDGPU_HW_IP_NUM] = {
 bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
 {
 	switch (ctx_prio) {
-	case AMDGPU_CTX_PRIORITY_UNSET:
 	case AMDGPU_CTX_PRIORITY_VERY_LOW:
 	case AMDGPU_CTX_PRIORITY_LOW:
 	case AMDGPU_CTX_PRIORITY_NORMAL:
@@ -55,6 +54,7 @@  bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio)
 	case AMDGPU_CTX_PRIORITY_VERY_HIGH:
 		return true;
 	default:
+	case AMDGPU_CTX_PRIORITY_UNSET:
 		return false;
 	}
 }