On Wed, Sep 27, 2017 at 7:09 AM, Felix Kuehling <Felix.Kuehling at amd.com> wrote: > HWS uses bit 7 in the queue number of the map process packet for an > undocumented feature. Therefore the queue number per process and > device must be 127 or less. > > Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com> > --- > drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > index 88ad178..5129dc1 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > @@ -150,6 +150,7 @@ int pqm_create_queue(struct process_queue_manager *pqm, > struct process_queue_node *pqn; > struct kernel_queue *kq; > enum kfd_queue_type type = properties->type; > + unsigned int max_queues = 127; /* HWS limit */ > > q = NULL; > kq = NULL; > @@ -166,10 +167,11 @@ int pqm_create_queue(struct process_queue_manager *pqm, > * If we are just about to create DIQ, the is_debug flag is not set yet > * Hence we also check the type as well > */ > - if ((pdd->qpd.is_debug) || (type == KFD_QUEUE_TYPE_DIQ)) { > - if (pdd->qpd.queue_count >= dev->device_info->max_no_of_hqd/2) > - return -ENOSPC; > - } > + if ((pdd->qpd.is_debug) || (type == KFD_QUEUE_TYPE_DIQ)) > + max_queues = dev->device_info->max_no_of_hqd/2; > + > + if (pdd->qpd.queue_count >= max_queues) > + return -ENOSPC; > > retval = find_available_queue_slot(pqm, qid); > if (retval != 0) > -- > 2.7.4 > This patch is: Reviewed-by: Oded Gabbay <oded.gabbay at gmail.com>