[PATCH v6 1/1] drm/amdgpu: set compute queue priority at mqd_init
Luben Tuikov
luben.tuikov at amd.com
Wed Mar 4 22:32:55 UTC 2020
On 2020-03-04 4:41 p.m., Luben Tuikov wrote:
> On 2020-03-03 7:50 a.m., Nirmoy Das wrote:
[snip]
>> + case DRM_SCHED_PRIORITY_HIGH_HW:
>> + case DRM_SCHED_PRIORITY_KERNEL:
>> + return AMDGPU_GFX_PIPE_PRIO_HIGH;
>> + default:
>> + return AMDGPU_GFX_PIPE_PRIO_NORMAL;
>> + }
>
> This can be a map. We're mapping from one integer
> space to another. There is no reason for a jump switch.
>
> For instance,
>
> /* Map of the DRM scheduling priority to pipe
> * priority.
> */
> const enum gfx_pipe_priority s2p_prio_map[] = {
> [0] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> [1] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> [2] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> [3] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> [4] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> [5] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> [6] = AMDGPU_GFX_PIPE_PRIO_HIGH,
> [7] = AMDGPU_GFX_PIPE_PRIO_HIGH,
> [8] = AMDGPU_GFX_PIPE_PRIO_NORMAL,
> };
>
> /* Map it!
> */
> pipe_prio = s2p_prio_map[sched_prio + 2]; ## You can view this as y = f(x + 2).
Note that you can make this into a
static inline enum gfx_pipe_priority s2p_prio_map(enum drm_sched_priority sp)
{
return _s2p_prio_map[sched_prio + 2];
}
Regards,
Luben
>
> Note that if you fix enum drm_sched_priority as I described
> in an earlier review, you'd not need the additive factor of 2
> in the above linear transformation.
More information about the amd-gfx
mailing list