[PATCH 7/8] drm/amdkfd: Update queue_count before mapping queues

Oded Gabbay oded.gabbay at gmail.com
Wed Nov 1 10:04:29 UTC 2017


On Thu, Oct 26, 2017 at 1:41 AM, Felix Kuehling <Felix.Kuehling at amd.com> wrote:
> map_queues_cpsch uses the queue_count to decide whether to upload
> a new runlist. So update the counter before calling it.
>
> Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com>
> ---
>  .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c    | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> index 45b98dd..e2fc4c5 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -408,6 +408,17 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
>
>         retval = mqd->update_mqd(mqd, q->mqd, &q->properties);
>
> +       /*
> +        * check active state vs. the previous state and modify
> +        * counter accordingly. map_queues_cpsch uses the
> +        * dqm->queue_count to determine whether a new runlist must be
> +        * uploaded.
> +        */
> +       if (q->properties.is_active && !prev_active)
> +               dqm->queue_count++;
> +       else if (!q->properties.is_active && prev_active)
> +               dqm->queue_count--;
> +
>         if (sched_policy != KFD_SCHED_POLICY_NO_HWS)
>                 retval = map_queues_cpsch(dqm);
>         else if (sched_policy == KFD_SCHED_POLICY_NO_HWS &&
> @@ -417,15 +428,6 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
>                 retval = mqd->load_mqd(mqd, q->mqd, q->pipe, q->queue,
>                                        &q->properties, q->process->mm);
>
> -       /*
> -        * check active state vs. the previous state
> -        * and modify counter accordingly
> -        */
> -       if (q->properties.is_active && !prev_active)
> -               dqm->queue_count++;
> -       else if (!q->properties.is_active && prev_active)
> -               dqm->queue_count--;
> -
>  out_unlock:
>         mutex_unlock(&dqm->lock);
>         return retval;
> --
> 2.7.4
>
This patch is:
Reviewed-by: Oded Gabbay <oded.gabbay at gmail.com>


More information about the amd-gfx mailing list