| /linux/drivers/gpu/drm/amd/amdkfd/ |
| H A D | kfd_device_queue_manager.c | 49 static int set_pasid_vmid_mapping(struct device_queue_manager *dqm, 52 static int execute_queues_cpsch(struct device_queue_manager *dqm, 56 static int unmap_queues_cpsch(struct device_queue_manager *dqm, 62 static int map_queues_cpsch(struct device_queue_manager *dqm); 64 static void deallocate_sdma_queue(struct device_queue_manager *dqm, 67 static inline void deallocate_hqd(struct device_queue_manager *dqm, 69 static int allocate_hqd(struct device_queue_manager *dqm, struct queue *q); 70 static int allocate_sdma_queue(struct device_queue_manager *dqm, 73 static int reset_queues_on_hws_hang(struct device_queue_manager *dqm, bool is_sdma); 83 static bool is_pipe_enabled(struct device_queue_manager *dqm, int mec, int pipe) in is_pipe_enabled() argument [all …]
|
| H A D | kfd_process_queue_manager.c | 93 dev->dqm->ops.process_termination(dev->dqm, &pdd->qpd); in kfd_process_dequeue_from_device() 164 return pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm, in pqm_set_gws() 368 dev->dqm->ops.register_process(dev->dqm, &pdd->qpd); in pqm_create_queue() 407 retval = dev->dqm->ops.create_queue(dev->dqm, q, &pdd->qpd, q_data, in pqm_create_queue() 414 if ((dev->dqm->sched_policy == in pqm_create_queue() 416 ((dev->dqm->processes_count >= dev->vm_info.vmid_num_kfd) || in pqm_create_queue() 417 (dev->dqm->active_queue_count >= get_cp_queues_num(dev->dqm)))) { in pqm_create_queue() 428 retval = dev->dqm->ops.create_queue(dev->dqm, q, &pdd->qpd, q_data, in pqm_create_queue() 488 dev->dqm->ops.unregister_process(dev->dqm, &pdd->qpd); in pqm_create_queue() 496 struct device_queue_manager *dqm; in pqm_destroy_queue() local [all …]
|
| H A D | kfd_mqd_manager.c | 58 mqd_mem_obj->mem = dev->dqm->hiq_sdma_mqd.mem; in allocate_hiq_mqd() 59 mqd_mem_obj->gpu_addr = dev->dqm->hiq_sdma_mqd.gpu_addr; in allocate_hiq_mqd() 60 mqd_mem_obj->cpu_ptr = dev->dqm->hiq_sdma_mqd.cpu_ptr; in allocate_hiq_mqd() 79 dev->dqm->mqd_mgrs[KFD_MQD_TYPE_SDMA]->mqd_size; in allocate_sdma_mqd() 81 offset += dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size * in allocate_sdma_mqd() 84 mqd_mem_obj->mem = (void *)((uint64_t)dev->dqm->hiq_sdma_mqd.mem in allocate_sdma_mqd() 86 mqd_mem_obj->gpu_addr = dev->dqm->hiq_sdma_mqd.gpu_addr + offset; in allocate_sdma_mqd() 88 dev->dqm->hiq_sdma_mqd.cpu_ptr + offset); in allocate_sdma_mqd() 275 return dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size; in kfd_hiq_mqd_stride() 286 dev->dqm->hiq_sdma_mqd.mem : NULL; in kfd_get_hiq_xcc_mqd() [all …]
|
| H A D | kfd_device.c | 570 if (node->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) in kfd_gws_init() 616 node->dqm = device_queue_manager_init(node); in kfd_init_node() 617 if (!node->dqm) { in kfd_init_node() 643 device_queue_manager_uninit(node->dqm); in kfd_init_node() 670 device_queue_manager_uninit(knode->dqm); in kfd_cleanup_nodes() 944 node->dqm->sched_policy); in kgd2kfd_device_init() 1077 node->dqm->ops.stop(node->dqm); in kgd2kfd_suspend() 1132 err = node->dqm->ops.start(node->dqm); in kfd_resume() 1590 ret = node->dqm->ops.unhalt(node->dqm); in kgd2kfd_start_sched() 1607 r = node->dqm->ops.unhalt(node->dqm); in kgd2kfd_start_sched_all_nodes() [all …]
|
| H A D | kfd_debug.c | 316 err = q->device->dqm->ops.update_queue(q->device->dqm, q, &minfo); in kfd_dbg_set_queue_workaround() 443 r = debug_lock_and_unmap(pdd->dev->dqm); in kfd_dbg_trap_clear_dev_address_watch() 455 r = debug_map_and_unlock(pdd->dev->dqm); in kfd_dbg_trap_clear_dev_address_watch() 480 r = debug_lock_and_unmap(pdd->dev->dqm); in kfd_dbg_trap_set_dev_address_watch() 500 r = debug_map_and_unlock(pdd->dev->dqm); in kfd_dbg_trap_set_dev_address_watch() 564 r = debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_set_flags() 587 (void)debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_set_flags() 645 release_debug_trap_vmid(pdd->dev->dqm, &pdd->qpd)) in kfd_dbg_trap_deactivate() 649 (void)debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_deactivate() 725 r = reserve_debug_trap_vmid(pdd->dev->dqm, &pdd->qpd); in kfd_dbg_trap_activate() [all …]
|
| H A D | kfd_process.c | 107 struct device_queue_manager *dqm; in kfd_sdma_activity_worker() local 118 dqm = pdd->dev->dqm; in kfd_sdma_activity_worker() 120 if (!dqm || !qpd) in kfd_sdma_activity_worker() 149 dqm_lock(dqm); in kfd_sdma_activity_worker() 158 dqm_unlock(dqm); in kfd_sdma_activity_worker() 175 dqm_unlock(dqm); in kfd_sdma_activity_worker() 179 dqm_unlock(dqm); in kfd_sdma_activity_worker() 209 dqm_lock(dqm); in kfd_sdma_activity_worker() 231 dqm_unlock(dqm); in kfd_sdma_activity_worker() 310 kfd_dqm_is_queue_in_process(dev->dqm, &pdd->qpd, in kfd_get_cu_occupancy() [all …]
|
| H A D | kfd_priv.h | 295 struct device_queue_manager *dqm; member 665 struct device_queue_manager *dqm; member 1364 void device_queue_manager_uninit(struct device_queue_manager *dqm); 1410 int amdkfd_fence_wait_timeout(struct device_queue_manager *dqm, 1442 struct device_queue_manager *dqm; member 1487 int pm_init(struct packet_manager *pm, struct device_queue_manager *dqm); 1617 int dqm_debugfs_hang_hws(struct device_queue_manager *dqm);
|
| H A D | kfd_kernel_queue.c | 60 kq->mqd_mgr = dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]; in kq_initialize()
|
| H A D | kfd_mqd_manager_v9.c | 702 uint32_t local_xcc_start = mm->dev->dqm->current_logical_xcc_start++; in init_mqd_v9_4_3() 816 mm->dev->dqm->current_logical_xcc_start++; in restore_mqd_v9_4_3()
|
| H A D | kfd_chardev.c | 610 if (!pdd->dev->dqm->ops.set_cache_memory_policy(pdd->dev->dqm, in kfd_ioctl_set_memory_policy() 926 if (dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS && in kfd_ioctl_set_scratch_backing_va() 1501 if (dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in kfd_ioctl_alloc_queue_gws() 2905 last_err = debug_refresh_runlist(pdd->dev->dqm); in runtime_disable()
|
| H A D | kfd_topology.c | 2125 dev->gpu->dqm->sched_policy != KFD_SCHED_POLICY_NO_HWS) ? in kfd_topology_add_device() 2127 dev->node_props.num_cp_queues = get_cp_queues_num(dev->gpu->dqm); in kfd_topology_add_device() 2399 r = dqm_debugfs_hqds(m, dev->gpu->dqm); in kfd_debugfs_hqds_by_device() 2424 r = pm_debugfs_runlist(m, &dev->gpu->dqm->packet_mgr); in kfd_debugfs_rls_by_device()
|
| H A D | kfd_events.c | 1282 if (dev->dqm->detect_hang_count && !pdd->has_reset_queue) in kfd_signal_reset_event() 1285 if (dev->dqm->detect_hang_count) { in kfd_signal_reset_event()
|
| H A D | kfd_mqd_manager_v12_1.c | 458 uint32_t local_xcc_start = mm->dev->dqm->current_logical_xcc_start++; in init_mqd_v12_1()
|