[PATCH v2] drm/amdgpu:no gpu scheduler for KIQ
Huang, Trigger
Trigger.Huang at amd.com
Thu Nov 3 09:33:38 UTC 2016
Hi Christian,
OK, I got it, thanks for your detailed suggestion.
Thanks & Best Wishes,
Trigger Huang
-----Original Message-----
From: Christian König [mailto:deathsimple at vodafone.de]
Sent: Wednesday, November 02, 2016 8:24 PM
To: Huang, Trigger <Trigger.Huang at amd.com>; amd-gfx at lists.freedesktop.org
Cc: Yu, Xiangliang <Xiangliang.Yu at amd.com>; Liu, Monk <Monk.Liu at amd.com>
Subject: Re: [PATCH v2] drm/amdgpu:no gpu scheduler for KIQ
Am 02.11.2016 um 12:48 schrieb Trigger Huang:
> KIQ is used for interaction between driver and CP, and not exposed to
> outside client, as such it doesn't need to be handled by GPU
> scheduler.
>
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
> Signed-off-by: Xiangliang Yu <Xiangliang.Yu at amd.com>
> Signed-off-by: Trigger Huang <trigger.huang at amd.com>
Even if you only fix a small mistake it is usually good practice to increase the version number of the patch, e.g. you would use v3 in this case and write a one liner what was wrong in the commit message.
But that's only a nit pick, so patch is Reviewed-by: Christian König <christian.koenig at amd.com> anyway.
Regards,
Christian.
>
> Changes in v2:
> - According to Alex's suggestion, wrapping the scheduler setup
> conditionally instead of returning early.
> - Use another simple method to check if is a KIQ ring.
>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 39 +++++++++++++++++--------------
> 1 file changed, 21 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> index 77b34ec..5772ef2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> @@ -382,24 +382,27 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
> if (!ring->fence_drv.fences)
> return -ENOMEM;
>
> - timeout = msecs_to_jiffies(amdgpu_lockup_timeout);
> - if (timeout == 0) {
> - /*
> - * FIXME:
> - * Delayed workqueue cannot use it directly,
> - * so the scheduler will not use delayed workqueue if
> - * MAX_SCHEDULE_TIMEOUT is set.
> - * Currently keep it simple and silly.
> - */
> - timeout = MAX_SCHEDULE_TIMEOUT;
> - }
> - r = amd_sched_init(&ring->sched, &amdgpu_sched_ops,
> - num_hw_submission,
> - timeout, ring->name);
> - if (r) {
> - DRM_ERROR("Failed to create scheduler on ring %s.\n",
> - ring->name);
> - return r;
> + /* No need to setup the GPU scheduler for KIQ ring */
> + if (ring->funcs->type != AMDGPU_RING_TYPE_KIQ) {
> + timeout = msecs_to_jiffies(amdgpu_lockup_timeout);
> + if (timeout == 0) {
> + /*
> + * FIXME:
> + * Delayed workqueue cannot use it directly,
> + * so the scheduler will not use delayed workqueue if
> + * MAX_SCHEDULE_TIMEOUT is set.
> + * Currently keep it simple and silly.
> + */
> + timeout = MAX_SCHEDULE_TIMEOUT;
> + }
> + r = amd_sched_init(&ring->sched, &amdgpu_sched_ops,
> + num_hw_submission,
> + timeout, ring->name);
> + if (r) {
> + DRM_ERROR("Failed to create scheduler on ring %s.\n",
> + ring->name);
> + return r;
> + }
> }
>
> return 0;
More information about the amd-gfx
mailing list