Lines Matching refs:pqn

36 	struct process_queue_node *pqn;  in get_queue_by_qid()  local
38 list_for_each_entry(pqn, &pqm->queues, process_queue_list) { in get_queue_by_qid()
39 if ((pqn->q && pqn->q->properties.queue_id == qid) || in get_queue_by_qid()
40 (pqn->kq && pqn->kq->queue->properties.queue_id == qid)) in get_queue_by_qid()
41 return pqn; in get_queue_by_qid()
108 struct process_queue_node *pqn; in pqm_set_gws() local
113 pqn = get_queue_by_qid(pqm, qid); in pqm_set_gws()
114 if (!pqn) { in pqm_set_gws()
119 if (pqn->q) in pqm_set_gws()
120 dev = pqn->q->device; in pqm_set_gws()
146 pqn->q->gws); in pqm_set_gws()
149 pqn->q->gws = mem; in pqm_set_gws()
157 pqn->q->gws = gws ? ERR_PTR(-ENOMEM) : NULL; in pqm_set_gws()
163 return pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm, in pqm_set_gws()
164 pqn->q, &minfo); in pqm_set_gws()
188 struct process_queue_node *pqn) in pqm_clean_queue_resource() argument
193 dev = pqn->q->device; in pqm_clean_queue_resource()
201 if (pqn->q->gws) { in pqm_clean_queue_resource()
202 if (KFD_GC_VERSION(pqn->q->device) != IP_VERSION(9, 4, 3) && in pqm_clean_queue_resource()
203 KFD_GC_VERSION(pqn->q->device) != IP_VERSION(9, 4, 4) && in pqm_clean_queue_resource()
204 KFD_GC_VERSION(pqn->q->device) != IP_VERSION(9, 5, 0) && in pqm_clean_queue_resource()
207 pqm->process->kgd_process_info, pqn->q->gws); in pqm_clean_queue_resource()
212 amdgpu_amdkfd_free_gtt_mem(dev->adev, &pqn->q->gang_ctx_bo); in pqm_clean_queue_resource()
213 amdgpu_amdkfd_free_gtt_mem(dev->adev, (void **)&pqn->q->wptr_bo_gart); in pqm_clean_queue_resource()
219 struct process_queue_node *pqn, *next; in pqm_uninit() local
221 list_for_each_entry_safe(pqn, next, &pqm->queues, process_queue_list) { in pqm_uninit()
222 if (pqn->q) { in pqm_uninit()
223 struct kfd_process_device *pdd = kfd_get_process_device_data(pqn->q->device, in pqm_uninit()
226 kfd_queue_unref_bo_vas(pdd, &pqn->q->properties); in pqm_uninit()
227 kfd_queue_release_buffers(pdd, &pqn->q->properties); in pqm_uninit()
231 pqm_clean_queue_resource(pqm, pqn); in pqm_uninit()
234 kfd_procfs_del_queue(pqn->q); in pqm_uninit()
235 uninit_queue(pqn->q); in pqm_uninit()
236 list_del(&pqn->process_queue_list); in pqm_uninit()
237 kfree(pqn); in pqm_uninit()
322 struct process_queue_node *pqn; in pqm_create_queue() local
386 pqn = kzalloc(sizeof(*pqn), GFP_KERNEL); in pqm_create_queue()
387 if (!pqn) { in pqm_create_queue()
405 pqn->q = q; in pqm_create_queue()
406 pqn->kq = NULL; in pqm_create_queue()
426 pqn->q = q; in pqm_create_queue()
427 pqn->kq = NULL; in pqm_create_queue()
439 pqn->kq = kq; in pqm_create_queue()
440 pqn->q = NULL; in pqm_create_queue()
477 list_add(&pqn->process_queue_list, &pqm->queues); in pqm_create_queue()
491 kfree(pqn); in pqm_create_queue()
503 struct process_queue_node *pqn; in pqm_destroy_queue() local
513 pqn = get_queue_by_qid(pqm, qid); in pqm_destroy_queue()
514 if (!pqn) { in pqm_destroy_queue()
520 if (pqn->kq) in pqm_destroy_queue()
521 dev = pqn->kq->dev; in pqm_destroy_queue()
522 if (pqn->q) in pqm_destroy_queue()
523 dev = pqn->q->device; in pqm_destroy_queue()
533 if (pqn->kq) { in pqm_destroy_queue()
535 dqm = pqn->kq->dev->dqm; in pqm_destroy_queue()
536 dqm->ops.destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd); in pqm_destroy_queue()
537 kernel_queue_uninit(pqn->kq); in pqm_destroy_queue()
540 if (pqn->q) { in pqm_destroy_queue()
541 retval = kfd_queue_unref_bo_vas(pdd, &pqn->q->properties); in pqm_destroy_queue()
545 dqm = pqn->q->device->dqm; in pqm_destroy_queue()
546 retval = dqm->ops.destroy_queue(dqm, &pdd->qpd, pqn->q); in pqm_destroy_queue()
550 pqn->q->properties.queue_id, retval); in pqm_destroy_queue()
554 kfd_procfs_del_queue(pqn->q); in pqm_destroy_queue()
555 kfd_queue_release_buffers(pdd, &pqn->q->properties); in pqm_destroy_queue()
556 pqm_clean_queue_resource(pqm, pqn); in pqm_destroy_queue()
557 uninit_queue(pqn->q); in pqm_destroy_queue()
560 list_del(&pqn->process_queue_list); in pqm_destroy_queue()
561 kfree(pqn); in pqm_destroy_queue()
576 struct process_queue_node *pqn; in pqm_update_queue_properties() local
578 pqn = get_queue_by_qid(pqm, qid); in pqm_update_queue_properties()
579 if (!pqn || !pqn->q) { in pqm_update_queue_properties()
590 struct queue *q = pqn->q; in pqm_update_queue_properties()
608 kfd_queue_unref_bo_va(vm, &pqn->q->properties.ring_bo); in pqm_update_queue_properties()
609 kfd_queue_buffer_put(&pqn->q->properties.ring_bo); in pqm_update_queue_properties()
612 pqn->q->properties.ring_bo = p->ring_bo; in pqm_update_queue_properties()
615 pqn->q->properties.queue_address = p->queue_address; in pqm_update_queue_properties()
616 pqn->q->properties.queue_size = p->queue_size; in pqm_update_queue_properties()
617 pqn->q->properties.queue_percent = p->queue_percent; in pqm_update_queue_properties()
618 pqn->q->properties.priority = p->priority; in pqm_update_queue_properties()
619 pqn->q->properties.pm4_target_xcc = p->pm4_target_xcc; in pqm_update_queue_properties()
621 retval = pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm, in pqm_update_queue_properties()
622 pqn->q, NULL); in pqm_update_queue_properties()
633 struct process_queue_node *pqn; in pqm_update_mqd() local
635 pqn = get_queue_by_qid(pqm, qid); in pqm_update_mqd()
636 if (!pqn) { in pqm_update_mqd()
642 if (pqn->q->properties.is_dbg_wa && minfo && minfo->cu_mask.ptr) in pqm_update_mqd()
647 KFD_GC_VERSION(pqn->q->device) >= IP_VERSION(10, 0, 0)) { in pqm_update_mqd()
660 retval = pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm, in pqm_update_mqd()
661 pqn->q, minfo); in pqm_update_mqd()
666 pqn->q->properties.is_user_cu_masked = true; in pqm_update_mqd()
674 struct process_queue_node *pqn; in pqm_get_user_queue() local
676 pqn = get_queue_by_qid(pqm, qid); in pqm_get_user_queue()
677 return pqn ? pqn->q : NULL; in pqm_get_user_queue()
686 struct process_queue_node *pqn; in pqm_get_wave_state() local
688 pqn = get_queue_by_qid(pqm, qid); in pqm_get_wave_state()
689 if (!pqn) { in pqm_get_wave_state()
695 return pqn->q->device->dqm->ops.get_wave_state(pqn->q->device->dqm, in pqm_get_wave_state()
696 pqn->q, in pqm_get_wave_state()
708 struct process_queue_node *pqn; in pqm_get_queue_snapshot() local
722 list_for_each_entry(pqn, &pqm->queues, process_queue_list) { in pqm_get_queue_snapshot()
723 if (!pqn->q) in pqm_get_queue_snapshot()
727 set_queue_snapshot_entry(pqn->q, exception_clear_mask, &src); in pqm_get_queue_snapshot()
804 struct process_queue_node *pqn; in pqm_checkpoint_mqd() local
806 pqn = get_queue_by_qid(pqm, qid); in pqm_checkpoint_mqd()
807 if (!pqn) { in pqm_checkpoint_mqd()
812 if (!pqn->q->device->dqm->ops.checkpoint_mqd) { in pqm_checkpoint_mqd()
817 return pqn->q->device->dqm->ops.checkpoint_mqd(pqn->q->device->dqm, in pqm_checkpoint_mqd()
818 pqn->q, mqd, ctl_stack); in pqm_checkpoint_mqd()
1070 struct process_queue_node *pqn; in pqm_get_queue_checkpoint_info() local
1072 pqn = get_queue_by_qid(pqm, qid); in pqm_get_queue_checkpoint_info()
1073 if (!pqn) { in pqm_get_queue_checkpoint_info()
1078 if (!pqn->q->device->dqm->ops.get_queue_checkpoint_info) { in pqm_get_queue_checkpoint_info()
1083 pqn->q->device->dqm->ops.get_queue_checkpoint_info(pqn->q->device->dqm, in pqm_get_queue_checkpoint_info()
1084 pqn->q, mqd_size, in pqm_get_queue_checkpoint_info()
1094 struct process_queue_node *pqn; in pqm_debugfs_mqds() local
1102 list_for_each_entry(pqn, &pqm->queues, process_queue_list) { in pqm_debugfs_mqds()
1103 if (pqn->q) { in pqm_debugfs_mqds()
1104 q = pqn->q; in pqm_debugfs_mqds()
1127 } else if (pqn->kq) { in pqm_debugfs_mqds()
1128 q = pqn->kq->queue; in pqm_debugfs_mqds()
1129 mqd_mgr = pqn->kq->mqd_mgr; in pqm_debugfs_mqds()
1133 pqn->kq->dev->id); in pqm_debugfs_mqds()
1139 pqn->kq->dev->id); in pqm_debugfs_mqds()