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>