On Wed, Sep 27, 2017 at 7:09 AM, Felix Kuehling <Felix.Kuehling at amd.com> wrote: > From: Yong Zhao <yong.zhao at amd.com> > > When unmapping the queues from HW scheduler, there are two actions: > reset and preempt. So naming the variables with only preempt is > inapproriate. > > For functions such as destroy_queues_cpsch, what they do actually is to > unmap the queues on HW scheduler rather than to destroy them. Change the > name to reflect that fact. On the other hand, there is already a function > called destroy_queue_cpsch() which exactly destroys a queue, and the name > is very close to destroy_queues_cpsch(), resulting in confusion. > > Signed-off-by: Yong Zhao <yong.zhao at amd.com> > Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com> > --- > .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 32 +++++++++++----------- > drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 18 ++++++------ > drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 20 +++++++------- > 3 files changed, 35 insertions(+), 35 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 471b34e..1995e0a 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > @@ -45,8 +45,8 @@ static int create_compute_queue_nocpsch(struct device_queue_manager *dqm, > struct qcm_process_device *qpd); > > static int execute_queues_cpsch(struct device_queue_manager *dqm, bool lock); > -static int destroy_queues_cpsch(struct device_queue_manager *dqm, > - bool preempt_static_queues, bool lock); > +static int unmap_queues_cpsch(struct device_queue_manager *dqm, > + bool static_queues_included, bool lock); > > static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm, > struct queue *q, > @@ -707,7 +707,7 @@ static int start_cpsch(struct device_queue_manager *dqm) > > static int stop_cpsch(struct device_queue_manager *dqm) > { > - destroy_queues_cpsch(dqm, true, true); > + unmap_queues_cpsch(dqm, true, true); > > kfd_gtt_sa_free(dqm->dev, dqm->fence_mem); > pm_uninit(&dqm->packets); > @@ -750,7 +750,7 @@ static void destroy_kernel_queue_cpsch(struct device_queue_manager *dqm, > { > mutex_lock(&dqm->lock); > /* here we actually preempt the DIQ */ > - destroy_queues_cpsch(dqm, true, false); > + unmap_queues_cpsch(dqm, true, false); > list_del(&kq->list); > dqm->queue_count--; > qpd->is_debug = false; > @@ -849,19 +849,19 @@ int amdkfd_fence_wait_timeout(unsigned int *fence_addr, > return 0; > } > > -static int destroy_sdma_queues(struct device_queue_manager *dqm, > +static int unmap_sdma_queues(struct device_queue_manager *dqm, > unsigned int sdma_engine) > { > return pm_send_unmap_queue(&dqm->packets, KFD_QUEUE_TYPE_SDMA, > - KFD_PREEMPT_TYPE_FILTER_DYNAMIC_QUEUES, 0, false, > + KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0, false, > sdma_engine); > } > > -static int destroy_queues_cpsch(struct device_queue_manager *dqm, > - bool preempt_static_queues, bool lock) > +static int unmap_queues_cpsch(struct device_queue_manager *dqm, > + bool static_queues_included, bool lock) > { > int retval; > - enum kfd_preempt_type_filter preempt_type; > + enum kfd_unmap_queues_filter filter; > struct kfd_process_device *pdd; > > retval = 0; > @@ -875,16 +875,16 @@ static int destroy_queues_cpsch(struct device_queue_manager *dqm, > dqm->sdma_queue_count); > > if (dqm->sdma_queue_count > 0) { > - destroy_sdma_queues(dqm, 0); > - destroy_sdma_queues(dqm, 1); > + unmap_sdma_queues(dqm, 0); > + unmap_sdma_queues(dqm, 1); > } > > - preempt_type = preempt_static_queues ? > - KFD_PREEMPT_TYPE_FILTER_ALL_QUEUES : > - KFD_PREEMPT_TYPE_FILTER_DYNAMIC_QUEUES; > + filter = static_queues_included ? > + KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES : > + KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES; > > retval = pm_send_unmap_queue(&dqm->packets, KFD_QUEUE_TYPE_COMPUTE, > - preempt_type, 0, false, 0); > + filter, 0, false, 0); > if (retval) > goto out; > > @@ -916,7 +916,7 @@ static int execute_queues_cpsch(struct device_queue_manager *dqm, bool lock) > if (lock) > mutex_lock(&dqm->lock); > > - retval = destroy_queues_cpsch(dqm, false, false); > + retval = unmap_queues_cpsch(dqm, false, false); > if (retval) { > pr_err("The cp might be in an unrecoverable state due to an unsuccessful queues preemption"); > goto out; > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c > index 9eda884..e5a15ba 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c > @@ -476,7 +476,7 @@ int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address, > } > > int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type, > - enum kfd_preempt_type_filter mode, > + enum kfd_unmap_queues_filter filter, > uint32_t filter_param, bool reset, > unsigned int sdma_engine) > { > @@ -494,8 +494,8 @@ int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type, > > packet = (struct pm4_mes_unmap_queues *)buffer; > memset(buffer, 0, sizeof(struct pm4_mes_unmap_queues)); > - pr_debug("static_queue: unmapping queues: mode is %d , reset is %d , type is %d\n", > - mode, reset, type); > + pr_debug("static_queue: unmapping queues: filter is %d , reset is %d , type is %d\n", > + filter, reset, type); > packet->header.u32All = build_pm4_header(IT_UNMAP_QUEUES, > sizeof(struct pm4_mes_unmap_queues)); > switch (type) { > @@ -521,29 +521,29 @@ int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type, > packet->bitfields2.action = > action__mes_unmap_queues__preempt_queues; > > - switch (mode) { > - case KFD_PREEMPT_TYPE_FILTER_SINGLE_QUEUE: > + switch (filter) { > + case KFD_UNMAP_QUEUES_FILTER_SINGLE_QUEUE: > packet->bitfields2.queue_sel = > queue_sel__mes_unmap_queues__perform_request_on_specified_queues; > packet->bitfields2.num_queues = 1; > packet->bitfields3b.doorbell_offset0 = filter_param; > break; > - case KFD_PREEMPT_TYPE_FILTER_BY_PASID: > + case KFD_UNMAP_QUEUES_FILTER_BY_PASID: > packet->bitfields2.queue_sel = > queue_sel__mes_unmap_queues__perform_request_on_pasid_queues; > packet->bitfields3a.pasid = filter_param; > break; > - case KFD_PREEMPT_TYPE_FILTER_ALL_QUEUES: > + case KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES: > packet->bitfields2.queue_sel = > queue_sel__mes_unmap_queues__unmap_all_queues; > break; > - case KFD_PREEMPT_TYPE_FILTER_DYNAMIC_QUEUES: > + case KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES: > /* in this case, we do not preempt static queues */ > packet->bitfields2.queue_sel = > queue_sel__mes_unmap_queues__unmap_all_non_static_queues; > break; > default: > - WARN(1, "filter %d", mode); > + WARN(1, "filter %d", filter); > retval = -EINVAL; > goto err_invalid; > } > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > index 10c0626..b0a5bea 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > @@ -225,22 +225,22 @@ void kfd_chardev_exit(void); > struct device *kfd_chardev(void); > > /** > - * enum kfd_preempt_type_filter > + * enum kfd_unmap_queues_filter > * > - * @KFD_PREEMPT_TYPE_FILTER_SINGLE_QUEUE: Preempts single queue. > + * @KFD_UNMAP_QUEUES_FILTER_SINGLE_QUEUE: Preempts single queue. > * > - * @KFD_PRERMPT_TYPE_FILTER_ALL_QUEUES: Preempts all queues in the > + * @KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES: Preempts all queues in the > * running queues list. > * > - * @KFD_PRERMPT_TYPE_FILTER_BY_PASID: Preempts queues that belongs to > + * @KFD_UNMAP_QUEUES_FILTER_BY_PASID: Preempts queues that belongs to > * specific process. > * > */ > -enum kfd_preempt_type_filter { > - KFD_PREEMPT_TYPE_FILTER_SINGLE_QUEUE, > - KFD_PREEMPT_TYPE_FILTER_ALL_QUEUES, > - KFD_PREEMPT_TYPE_FILTER_DYNAMIC_QUEUES, > - KFD_PREEMPT_TYPE_FILTER_BY_PASID > +enum kfd_unmap_queues_filter { > + KFD_UNMAP_QUEUES_FILTER_SINGLE_QUEUE, > + KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES, > + KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, > + KFD_UNMAP_QUEUES_FILTER_BY_PASID > }; > > /** > @@ -698,7 +698,7 @@ int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address, > uint32_t fence_value); > > int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type, > - enum kfd_preempt_type_filter mode, > + enum kfd_unmap_queues_filter mode, > uint32_t filter_param, bool reset, > unsigned int sdma_engine); > > -- > 2.7.4 > This patch is: Reviewed-by: Oded Gabbay <oded.gabbay at gmail.com>