Lines Matching refs:properties
224 queue_input.inprocess_gang_priority = q->properties.priority; in add_queue_mes()
227 queue_input.doorbell_offset = q->properties.doorbell_off; in add_queue_mes()
229 queue_input.wptr_addr = (uint64_t)q->properties.write_ptr; in add_queue_mes()
231 wptr_addr_off = (uint64_t)q->properties.write_ptr & (PAGE_SIZE - 1); in add_queue_mes()
232 queue_input.wptr_mc_addr = amdgpu_bo_gpu_offset(q->properties.wptr_bo) + wptr_addr_off; in add_queue_mes()
235 queue_input.is_aql_queue = (q->properties.format == KFD_QUEUE_FORMAT_AQL); in add_queue_mes()
236 queue_input.queue_size = q->properties.queue_size >> 2; in add_queue_mes()
247 queue_type = convert_to_mes_queue_type(q->properties.type); in add_queue_mes()
250 q->properties.type); in add_queue_mes()
256 queue_input.exclusively_scheduled = q->properties.is_gws; in add_queue_mes()
264 q->properties.doorbell_off); in add_queue_mes()
285 queue_input.doorbell_offset = q->properties.doorbell_off; in remove_queue_mes()
295 q->properties.doorbell_off); in remove_queue_mes()
314 if (q->properties.is_active) { in remove_all_kfd_queues_mes()
319 q->properties.queue_id, in remove_all_kfd_queues_mes()
341 if (!q->properties.is_active) in add_all_kfd_queues_mes()
347 q->properties.queue_id, in add_all_kfd_queues_mes()
402 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE || in increment_queue_count()
403 q->properties.type == KFD_QUEUE_TYPE_DIQ) in increment_queue_count()
406 if (q->properties.is_gws) { in increment_queue_count()
417 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE || in decrement_queue_count()
418 q->properties.type == KFD_QUEUE_TYPE_DIQ) in decrement_queue_count()
421 if (q->properties.is_gws) { in decrement_queue_count()
442 if (restore_id && *restore_id != q->properties.queue_id) in allocate_doorbell()
445 q->doorbell_id = q->properties.queue_id; in allocate_doorbell()
446 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA || in allocate_doorbell()
447 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) { in allocate_doorbell()
464 q->properties.sdma_engine_id] in allocate_doorbell()
465 + (q->properties.sdma_queue_id & 1) in allocate_doorbell()
467 + (q->properties.sdma_queue_id >> 1); in allocate_doorbell()
495 q->properties.doorbell_off = amdgpu_doorbell_index_on_bar(dev->adev, in allocate_doorbell()
509 q->properties.type == KFD_QUEUE_TYPE_SDMA || in deallocate_doorbell()
510 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) in deallocate_doorbell()
558 q->properties.vmid = allocated_vmid; in allocate_vmid()
617 q->properties.vmid = 0; in deallocate_vmid()
643 q->properties.vmid = qpd->vmid; in create_queue_nocpsch()
649 q->properties.is_evicted = !!qpd->evicted; in create_queue_nocpsch()
651 q->properties.tba_addr = qpd->tba_addr; in create_queue_nocpsch()
652 q->properties.tma_addr = qpd->tma_addr; in create_queue_nocpsch()
655 q->properties.type)]; in create_queue_nocpsch()
656 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) { in create_queue_nocpsch()
662 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA || in create_queue_nocpsch()
663 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) { in create_queue_nocpsch()
676 q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr->dev, &q->properties); in create_queue_nocpsch()
686 &q->properties, restore_mqd, restore_ctl_stack, in create_queue_nocpsch()
690 &q->gart_mqd_addr, &q->properties); in create_queue_nocpsch()
692 if (q->properties.is_active) { in create_queue_nocpsch()
703 q->queue, &q->properties, current->mm); in create_queue_nocpsch()
711 if (q->properties.is_active) in create_queue_nocpsch()
728 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) in create_queue_nocpsch()
730 else if (q->properties.type == KFD_QUEUE_TYPE_SDMA || in create_queue_nocpsch()
731 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) in create_queue_nocpsch()
860 q->properties.type)]; in destroy_queue_nocpsch_locked()
862 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) in destroy_queue_nocpsch_locked()
864 else if (q->properties.type == KFD_QUEUE_TYPE_SDMA) in destroy_queue_nocpsch_locked()
866 else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) in destroy_queue_nocpsch_locked()
870 q->properties.type); in destroy_queue_nocpsch_locked()
905 if (q->properties.is_active) in destroy_queue_nocpsch_locked()
920 dqm->mqd_mgrs[get_mqd_type_from_queue_type(q->properties.type)]; in destroy_queue_nocpsch()
923 if ((q->properties.type == KFD_QUEUE_TYPE_SDMA) || in destroy_queue_nocpsch()
924 (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)) { in destroy_queue_nocpsch()
925 retval = read_sdma_queue_counter((uint64_t __user *)q->properties.read_ptr, in destroy_queue_nocpsch()
929 q->properties.queue_id); in destroy_queue_nocpsch()
959 q->properties.type)]; in update_queue()
962 prev_active = q->properties.is_active; in update_queue()
983 (q->properties.type == KFD_QUEUE_TYPE_COMPUTE || in update_queue()
984 q->properties.type == KFD_QUEUE_TYPE_SDMA || in update_queue()
985 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)) { in update_queue()
1003 mqd_mgr->update_mqd(mqd_mgr, q->mqd, &q->properties, minfo); in update_queue()
1011 if (q->properties.is_active && !prev_active) { in update_queue()
1013 } else if (!q->properties.is_active && prev_active) { in update_queue()
1015 } else if (q->gws && !q->properties.is_gws) { in update_queue()
1016 if (q->properties.is_active) { in update_queue()
1020 q->properties.is_gws = true; in update_queue()
1021 } else if (!q->gws && q->properties.is_gws) { in update_queue()
1022 if (q->properties.is_active) { in update_queue()
1026 q->properties.is_gws = false; in update_queue()
1032 else if (q->properties.is_active) in update_queue()
1034 } else if (q->properties.is_active && in update_queue()
1035 (q->properties.type == KFD_QUEUE_TYPE_COMPUTE || in update_queue()
1036 q->properties.type == KFD_QUEUE_TYPE_SDMA || in update_queue()
1037 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)) { in update_queue()
1044 &q->properties, current->mm); in update_queue()
1066 if (q->properties.is_suspended) in suspend_single_queue()
1071 q->properties.queue_id); in suspend_single_queue()
1073 is_new = q->properties.exception_status & KFD_EC_MASK(EC_QUEUE_NEW); in suspend_single_queue()
1075 if (is_new || q->properties.is_being_destroyed) { in suspend_single_queue()
1078 q->properties.queue_id); in suspend_single_queue()
1082 q->properties.is_suspended = true; in suspend_single_queue()
1083 if (q->properties.is_active) { in suspend_single_queue()
1092 q->properties.is_active = false; in suspend_single_queue()
1112 if (!q->properties.is_suspended) in resume_single_queue()
1119 q->properties.queue_id); in resume_single_queue()
1121 q->properties.is_suspended = false; in resume_single_queue()
1123 if (QUEUE_IS_ACTIVE(q->properties)) { in resume_single_queue()
1131 q->properties.is_active = true; in resume_single_queue()
1159 q->properties.is_evicted = true; in evict_process_queues_nocpsch()
1160 if (!q->properties.is_active) in evict_process_queues_nocpsch()
1164 q->properties.type)]; in evict_process_queues_nocpsch()
1165 q->properties.is_active = false; in evict_process_queues_nocpsch()
1216 q->properties.is_evicted = true; in evict_process_queues_cpsch()
1217 if (!q->properties.is_active) in evict_process_queues_cpsch()
1220 q->properties.is_active = false; in evict_process_queues_cpsch()
1229 q->properties.queue_id); in evict_process_queues_cpsch()
1298 q->properties.is_evicted = false; in restore_process_queues_nocpsch()
1299 if (!QUEUE_IS_ACTIVE(q->properties)) in restore_process_queues_nocpsch()
1303 q->properties.type)]; in restore_process_queues_nocpsch()
1304 q->properties.is_active = true; in restore_process_queues_nocpsch()
1311 q->queue, &q->properties, mm); in restore_process_queues_nocpsch()
1363 q->properties.is_evicted = false; in restore_process_queues_cpsch()
1364 if (!QUEUE_IS_ACTIVE(q->properties)) in restore_process_queues_cpsch()
1367 q->properties.is_active = true; in restore_process_queues_cpsch()
1374 q->properties.queue_id); in restore_process_queues_cpsch()
1578 if (q->properties.type == KFD_QUEUE_TYPE_SDMA) { in allocate_sdma_queue()
1601 q->properties.sdma_engine_id = in allocate_sdma_queue()
1603 q->properties.sdma_queue_id = q->sdma_id / in allocate_sdma_queue()
1605 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) { in allocate_sdma_queue()
1631 q->properties.sdma_engine_id = in allocate_sdma_queue()
1634 q->properties.sdma_queue_id = q->sdma_id / in allocate_sdma_queue()
1636 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_BY_ENG_ID) { in allocate_sdma_queue()
1640 if (q->properties.sdma_engine_id < kfd_get_num_sdma_engines(dqm->dev)) { in allocate_sdma_queue()
1643 q->properties.type = KFD_QUEUE_TYPE_SDMA; in allocate_sdma_queue()
1648 q->properties.type = KFD_QUEUE_TYPE_SDMA_XGMI; in allocate_sdma_queue()
1653 start_engine = q->properties.sdma_engine_id - eng_offset; in allocate_sdma_queue()
1661 q->properties.sdma_queue_id = q->sdma_id / num_engines; in allocate_sdma_queue()
1668 q->properties.sdma_engine_id, num_queues); in allocate_sdma_queue()
1673 pr_debug("SDMA engine id: %d\n", q->properties.sdma_engine_id); in allocate_sdma_queue()
1674 pr_debug("SDMA queue id: %d\n", q->properties.sdma_queue_id); in allocate_sdma_queue()
1682 if (q->properties.type == KFD_QUEUE_TYPE_SDMA) { in deallocate_sdma_queue()
1686 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) { in deallocate_sdma_queue()
1978 if (q->properties.type == KFD_QUEUE_TYPE_SDMA || in create_queue_cpsch()
1979 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI || in create_queue_cpsch()
1980 q->properties.type == KFD_QUEUE_TYPE_SDMA_BY_ENG_ID) { in create_queue_cpsch()
1993 q->properties.type)]; in create_queue_cpsch()
1995 if (q->properties.type == KFD_QUEUE_TYPE_SDMA || in create_queue_cpsch()
1996 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) in create_queue_cpsch()
1998 q->properties.tba_addr = qpd->tba_addr; in create_queue_cpsch()
1999 q->properties.tma_addr = qpd->tma_addr; in create_queue_cpsch()
2000 q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr->dev, &q->properties); in create_queue_cpsch()
2012 q->properties.is_evicted = !!qpd->evicted; in create_queue_cpsch()
2013 q->properties.is_dbg_wa = qpd->pqm->process->debug_trap_enabled && in create_queue_cpsch()
2018 &q->properties, restore_mqd, restore_ctl_stack, in create_queue_cpsch()
2022 &q->gart_mqd_addr, &q->properties); in create_queue_cpsch()
2027 if (q->properties.is_active) { in create_queue_cpsch()
2054 if (q->properties.is_active) in create_queue_cpsch()
2061 if (q->properties.type == KFD_QUEUE_TYPE_SDMA || in create_queue_cpsch()
2062 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) { in create_queue_cpsch()
2131 q->properties.queue_id, pdd->process->lead_thread->pid); in set_queue_as_reset()
2134 if (q->properties.is_active) { in set_queue_as_reset()
2135 q->properties.is_active = false; in set_queue_as_reset()
2192 if (queue_address == q->properties.queue_address) in find_queue_by_address()
2233 if (queue_addr != q->properties.queue_address) { in reset_hung_queues()
2282 if ((q->properties.type == KFD_QUEUE_TYPE_SDMA || in set_sdma_queue_as_reset()
2283 q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) && in set_sdma_queue_as_reset()
2284 q->properties.doorbell_off == doorbell_off) { in set_sdma_queue_as_reset()
2490 q->properties.is_being_destroyed = true; in wait_on_destroy_queue()
2492 if (pdd->process->debug_trap_enabled && q->properties.is_suspended) { in wait_on_destroy_queue()
2496 !q->properties.is_suspended); in wait_on_destroy_queue()
2516 if ((q->properties.type == KFD_QUEUE_TYPE_SDMA) || in destroy_queue_cpsch()
2517 (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)) { in destroy_queue_cpsch()
2518 retval = read_sdma_queue_counter((uint64_t __user *)q->properties.read_ptr, in destroy_queue_cpsch()
2522 q->properties.queue_id); in destroy_queue_cpsch()
2546 q->properties.type)]; in destroy_queue_cpsch()
2550 if ((q->properties.type == KFD_QUEUE_TYPE_SDMA) || in destroy_queue_cpsch()
2551 (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)) { in destroy_queue_cpsch()
2556 if (q->properties.is_active) { in destroy_queue_cpsch()
2558 q->properties.is_active = false; in destroy_queue_cpsch()
2656 q->properties.type)]; in process_termination_nocpsch()
2699 if (q->properties.type != KFD_QUEUE_TYPE_COMPUTE || in get_wave_state()
2700 q->properties.is_active || !q->device->kfd->cwsr_enabled || in get_wave_state()
2713 return mqd_mgr->get_wave_state(mqd_mgr, q->mqd, &q->properties, in get_wave_state()
2724 get_mqd_type_from_queue_type(q->properties.type); in get_queue_checkpoint_info()
2731 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE && mqd_mgr->get_checkpoint_info) in get_queue_checkpoint_info()
2745 get_mqd_type_from_queue_type(q->properties.type); in checkpoint_mqd()
2749 if (q->properties.is_active || !q->device->kfd->cwsr_enabled) { in checkpoint_mqd()
2795 if (q->properties.type == KFD_QUEUE_TYPE_SDMA) in process_termination_cpsch()
2797 else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) in process_termination_cpsch()
2800 if (q->properties.is_active) { in process_termination_cpsch()
2807 q->properties.queue_id); in process_termination_cpsch()
2842 q->properties.type)]; in process_termination_cpsch()
3069 if (q->doorbell_id == doorbell_id && q->properties.is_active) { in kfd_dqm_suspend_bad_queue_mes()
3076 q->properties.is_evicted = true; in kfd_dqm_suspend_bad_queue_mes()
3077 q->properties.is_active = false; in kfd_dqm_suspend_bad_queue_mes()
3308 if (q->properties.type != KFD_QUEUE_TYPE_COMPUTE) in copy_context_work_handler()
3321 &q->properties, in copy_context_work_handler()
3322 (void __user *) q->properties.ctx_save_restore_area_address, in copy_context_work_handler()
3375 q->properties.queue_id, in resume_queues()
3417 q->properties.queue_id, in resume_queues()
3475 int q_idx = q_array_get_index(q->properties.queue_id, in suspend_queues()
3486 q->properties.exception_status &= in suspend_queues()
3519 int q_idx = q_array_get_index(q->properties.queue_id, in suspend_queues()
3529 q->properties.exception_status &= in suspend_queues()
3584 qss_entry->ring_base_address = q->properties.queue_address; in set_queue_snapshot_entry()
3585 qss_entry->write_pointer_address = (uint64_t)q->properties.write_ptr; in set_queue_snapshot_entry()
3586 qss_entry->read_pointer_address = (uint64_t)q->properties.read_ptr; in set_queue_snapshot_entry()
3588 q->properties.ctx_save_restore_area_address; in set_queue_snapshot_entry()
3590 q->properties.ctx_save_restore_area_size; in set_queue_snapshot_entry()
3591 qss_entry->exception_status = q->properties.exception_status; in set_queue_snapshot_entry()
3592 qss_entry->queue_id = q->properties.queue_id; in set_queue_snapshot_entry()
3594 qss_entry->ring_size = (uint32_t)q->properties.queue_size; in set_queue_snapshot_entry()
3595 qss_entry->queue_type = set_queue_type_for_user(&q->properties); in set_queue_snapshot_entry()
3596 q->properties.exception_status &= ~exception_clear_mask; in set_queue_snapshot_entry()
3664 if (q->properties.doorbell_off == doorbell_off) { in kfd_dqm_is_queue_in_process()
3665 *queue_format = q->properties.format; in kfd_dqm_is_queue_in_process()