| /linux-6.15/drivers/gpu/drm/amd/amdkfd/ |
| H A D | kfd_device_queue_manager.c | 209 if (!dqm->sched_running || dqm->sched_halt) in add_queue_mes() 279 if (!dqm->sched_running || dqm->sched_halt) in remove_queue_mes() 667 dqm->asic_ops.init_sdma_vm(dqm, q, qpd); in create_queue_nocpsch() 1549 r = pm_init(&dqm->packet_mgr, dqm); in start_nocpsch() 1824 retval = pm_init(&dqm->packet_mgr, dqm); in start_cpsch() 1995 dqm->asic_ops.init_sdma_vm(dqm, q, qpd); in create_queue_cpsch() 2900 dqm = kzalloc(sizeof(*dqm), GFP_KERNEL); in device_queue_manager_init() 3012 if (!dqm->ops.initialize(dqm)) { in device_queue_manager_init() 3032 dqm->ops.stop(dqm); in device_queue_manager_uninit() 3033 dqm->ops.uninitialize(dqm); in device_queue_manager_uninit() [all …]
|
| H A D | kfd_device_queue_manager.h | 158 int (*start)(struct device_queue_manager *dqm); 159 int (*stop)(struct device_queue_manager *dqm); 161 int (*halt)(struct device_queue_manager *dqm); 348 mutex_lock(&dqm->lock_hidden); in dqm_lock() 349 dqm->saved_flags = memalloc_noreclaim_save(); in dqm_lock() 353 memalloc_noreclaim_restore(dqm->saved_flags); in dqm_unlock() 354 mutex_unlock(&dqm->lock_hidden); in dqm_unlock() 365 if (dqm->dev->kfd2kgd->get_iq_wait_times) in update_dqm_wait_times() 366 dqm->dev->kfd2kgd->get_iq_wait_times(dqm->dev->adev, in update_dqm_wait_times() 367 &dqm->wait_times, in update_dqm_wait_times() [all …]
|
| H A D | kfd_device_queue_manager_v9.c | 29 static int update_qpd_v9(struct device_queue_manager *dqm, 33 static bool set_cache_memory_policy_v9(struct device_queue_manager *dqm, 70 if (dqm->dev->kfd->noretry) in set_cache_memory_policy_v9() 73 if (KFD_GC_VERSION(dqm->dev->kfd) == IP_VERSION(9, 4, 3) || in set_cache_memory_policy_v9() 74 KFD_GC_VERSION(dqm->dev->kfd) == IP_VERSION(9, 4, 4)) in set_cache_memory_policy_v9() 77 if (KFD_GC_VERSION(dqm->dev->kfd) == IP_VERSION(9, 5, 0)) { in set_cache_memory_policy_v9() 91 static int update_qpd_v9(struct device_queue_manager *dqm, in update_qpd_v9() argument 103 if (dqm->dev->kfd->noretry) in update_qpd_v9() 106 if (KFD_GC_VERSION(dqm->dev->kfd) == IP_VERSION(9, 4, 3) || in update_qpd_v9() 107 KFD_GC_VERSION(dqm->dev->kfd) == IP_VERSION(9, 4, 4)) in update_qpd_v9() [all …]
|
| H A D | kfd_packet_manager.c | 52 struct kfd_node *node = pm->dqm->dev; in pm_calc_rlib_size() 101 struct kfd_node *node = pm->dqm->dev; in pm_allocate_runlist_ib() 137 struct kfd_node *node = pm->dqm->dev; in pm_create_runlist_ib() 157 pm->dqm->processes_count, pm->dqm->active_queue_count); in pm_create_runlist_ib() 247 switch (dqm->dev->adev->asic_type) { in pm_init() 270 dqm->dev->adev->asic_type); in pm_init() 275 pm->dqm = dqm; in pm_init() 297 struct kfd_node *node = pm->dqm->dev; in pm_send_set_resources() 370 struct kfd_node *node = pm->dqm->dev; in pm_send_query_status() 412 struct kfd_node *node = pm->dqm->dev; in pm_config_dequeue_wait_counts() [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() 163 return pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm, in pqm_set_gws() 369 dev->dqm->ops.register_process(dev->dqm, &pdd->qpd); in pqm_create_queue() 445 retval = dev->dqm->ops.create_kernel_queue(dev->dqm, in pqm_create_queue() 497 dev->dqm->ops.unregister_process(dev->dqm, &pdd->qpd); in pqm_create_queue() 509 dqm = NULL; 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() 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() [all …]
|
| H A D | kfd_device_queue_manager_v11.c | 29 static int update_qpd_v11(struct device_queue_manager *dqm, 31 static void init_sdma_vm_v11(struct device_queue_manager *dqm, struct queue *q, 33 static bool set_cache_memory_policy_v11(struct device_queue_manager *dqm, 59 static bool set_cache_memory_policy_v11(struct device_queue_manager *dqm, in set_cache_memory_policy_v11() argument 79 static int update_qpd_v11(struct device_queue_manager *dqm, in update_qpd_v11() argument 85 static void init_sdma_vm_v11(struct device_queue_manager *dqm, struct queue *q, in init_sdma_vm_v11() argument
|
| H A D | kfd_device_queue_manager_v10.c | 30 static int update_qpd_v10(struct device_queue_manager *dqm, 32 static void init_sdma_vm_v10(struct device_queue_manager *dqm, struct queue *q, 34 static bool set_cache_memory_policy_v10(struct device_queue_manager *dqm, 60 static bool set_cache_memory_policy_v10(struct device_queue_manager *dqm, in set_cache_memory_policy_v10() argument 79 static int update_qpd_v10(struct device_queue_manager *dqm, in update_qpd_v10() argument 85 static void init_sdma_vm_v10(struct device_queue_manager *dqm, struct queue *q, in init_sdma_vm_v10() argument
|
| H A D | kfd_device_queue_manager_v12.c | 29 static int update_qpd_v12(struct device_queue_manager *dqm, 31 static void init_sdma_vm_v12(struct device_queue_manager *dqm, struct queue *q, 33 static bool set_cache_memory_policy_v12(struct device_queue_manager *dqm, 59 static bool set_cache_memory_policy_v12(struct device_queue_manager *dqm, in set_cache_memory_policy_v12() argument 79 static int update_qpd_v12(struct device_queue_manager *dqm, in update_qpd_v12() argument 85 static void init_sdma_vm_v12(struct device_queue_manager *dqm, struct queue *q, in init_sdma_vm_v12() argument
|
| H A D | kfd_mqd_manager.c | 57 mqd_mem_obj->gtt_mem = dev->dqm->hiq_sdma_mqd.gtt_mem; in allocate_hiq_mqd() 58 mqd_mem_obj->gpu_addr = dev->dqm->hiq_sdma_mqd.gpu_addr; in allocate_hiq_mqd() 59 mqd_mem_obj->cpu_ptr = dev->dqm->hiq_sdma_mqd.cpu_ptr; in allocate_hiq_mqd() 77 dev->dqm->mqd_mgrs[KFD_MQD_TYPE_SDMA]->mqd_size; in allocate_sdma_mqd() 79 offset += dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size * in allocate_sdma_mqd() 84 mqd_mem_obj->gpu_addr = dev->dqm->hiq_sdma_mqd.gpu_addr + offset; in allocate_sdma_mqd() 86 dev->dqm->hiq_sdma_mqd.cpu_ptr + offset); in allocate_sdma_mqd() 273 return dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size; in kfd_hiq_mqd_stride() 284 dev->dqm->hiq_sdma_mqd.gtt_mem : NULL; in kfd_get_hiq_xcc_mqd() 285 mqd_mem_obj->gpu_addr = dev->dqm->hiq_sdma_mqd.gpu_addr + offset; in kfd_get_hiq_xcc_mqd() [all …]
|
| H A D | kfd_device_queue_manager_vi.c | 38 static bool set_cache_memory_policy_vi(struct device_queue_manager *dqm, 45 static int update_qpd_vi(struct device_queue_manager *dqm, 47 static void init_sdma_vm(struct device_queue_manager *dqm, 88 static bool set_cache_memory_policy_vi(struct device_queue_manager *dqm, in set_cache_memory_policy_vi() argument 155 static int update_qpd_vi(struct device_queue_manager *dqm, in update_qpd_vi() argument 161 static void init_sdma_vm(struct device_queue_manager *dqm, in init_sdma_vm() argument
|
| H A D | kfd_device_queue_manager_cik.c | 38 static bool set_cache_memory_policy_cik(struct device_queue_manager *dqm, 45 static int update_qpd_cik(struct device_queue_manager *dqm, 47 static void init_sdma_vm(struct device_queue_manager *dqm, 87 static bool set_cache_memory_policy_cik(struct device_queue_manager *dqm, in set_cache_memory_policy_cik() argument 153 static int update_qpd_cik(struct device_queue_manager *dqm, in update_qpd_cik() argument 159 static void init_sdma_vm(struct device_queue_manager *dqm, in init_sdma_vm() argument
|
| H A D | kfd_packet_manager_v9.c | 37 struct kfd_node *kfd = pm->dqm->dev; in pm_map_process_v9() 60 packet->bitfields2.debug_vmid = kfd->dqm->trap_debug_vmid; in pm_map_process_v9() 94 struct kfd_dev *kfd = pm->dqm->dev->kfd; in pm_map_process_aldebaran() 95 struct kfd_node *knode = pm->dqm->dev; in pm_map_process_aldebaran() 153 struct kfd_node *kfd = pm->dqm->dev; in pm_runlist_v9() 169 1 : min(pm->dqm->processes_count, in pm_runlist_v9() 305 pm->dqm->dev->adev, in pm_build_dequeue_wait_counts_packet_info() 306 pm->dqm->wait_times, in pm_build_dequeue_wait_counts_packet_info() 342 if (KFD_GC_VERSION(pm->dqm->dev) < IP_VERSION(9, 4, 1) || in pm_config_dequeue_wait_counts_v9() 343 KFD_GC_VERSION(pm->dqm->dev) >= IP_VERSION(10, 0, 0)) in pm_config_dequeue_wait_counts_v9() [all …]
|
| H A D | kfd_device.c | 619 node->dqm = device_queue_manager_init(node); in kfd_init_node() 620 if (!node->dqm) { in kfd_init_node() 646 device_queue_manager_uninit(node->dqm); in kfd_init_node() 673 device_queue_manager_uninit(knode->dqm); in kfd_cleanup_nodes() 930 node->dqm->sched_policy); in kgd2kfd_device_init() 1046 node->dqm->ops.stop(node->dqm); in kgd2kfd_suspend() 1079 err = node->dqm->ops.start(node->dqm); in kfd_resume() 1486 ret = node->dqm->ops.unhalt(node->dqm); in kgd2kfd_start_sched() 1507 return node->dqm->ops.halt(node->dqm); in kgd2kfd_stop_sched() 1602 if (dev->dqm->sched_policy != KFD_SCHED_POLICY_HWS) { in kfd_debugfs_hang_hws() [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() 439 r = debug_lock_and_unmap(pdd->dev->dqm); in kfd_dbg_trap_clear_dev_address_watch() 451 r = debug_map_and_unlock(pdd->dev->dqm); in kfd_dbg_trap_clear_dev_address_watch() 473 r = debug_lock_and_unmap(pdd->dev->dqm); in kfd_dbg_trap_set_dev_address_watch() 493 r = debug_map_and_unlock(pdd->dev->dqm); in kfd_dbg_trap_set_dev_address_watch() 545 r = debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_set_flags() 568 debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_set_flags() 630 debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_deactivate() 747 r = debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_activate() 881 r = debug_refresh_runlist(pdd->dev->dqm); in kfd_dbg_trap_set_wave_launch_override() [all …]
|
| H A D | kfd_process.c | 119 dqm = pdd->dev->dqm; in kfd_sdma_activity_worker() 121 if (!dqm || !qpd) in kfd_sdma_activity_worker() 150 dqm_lock(dqm); in kfd_sdma_activity_worker() 159 dqm_unlock(dqm); in kfd_sdma_activity_worker() 176 dqm_unlock(dqm); in kfd_sdma_activity_worker() 180 dqm_unlock(dqm); in kfd_sdma_activity_worker() 210 dqm_lock(dqm); in kfd_sdma_activity_worker() 232 dqm_unlock(dqm); in kfd_sdma_activity_worker() 1624 pdd->qpd.dqm = dev->dqm; in kfd_create_process_device_data() 1886 r = pdd->dev->dqm->ops.evict_process_queues(pdd->dev->dqm, in kfd_process_evict_queues() [all …]
|
| H A D | kfd_int_process_v11.c | 213 if (dev->dqm->ops.reset_queues) in event_interrupt_poison_consumption_v11() 214 ret = dev->dqm->ops.reset_queues(dev->dqm, pasid); in event_interrupt_poison_consumption_v11()
|
| H A D | kfd_priv.h | 288 struct device_queue_manager *dqm; member 653 struct device_queue_manager *dqm; member 1333 void device_queue_manager_uninit(struct device_queue_manager *dqm); 1379 int amdkfd_fence_wait_timeout(struct device_queue_manager *dqm, 1411 struct device_queue_manager *dqm; member 1456 int pm_init(struct packet_manager *pm, struct device_queue_manager *dqm); 1582 int dqm_debugfs_hang_hws(struct device_queue_manager *dqm);
|
| H A D | kfd_packet_manager_vi.c | 81 struct kfd_node *kfd = pm->dqm->dev; in pm_runlist_vi() 95 concurrent_proc_cnt = min(pm->dqm->processes_count, in pm_runlist_vi()
|
| H A D | kfd_kernel_queue.c | 66 kq->mqd_mgr = dev->dqm->mqd_mgrs[KFD_MQD_TYPE_DIQ]; in kq_initialize() 69 kq->mqd_mgr = dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]; in kq_initialize()
|
| H A D | kfd_int_process_v9.c | 303 if (!pasid && dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in event_interrupt_isr_v9() 310 pasid = dev->dqm->vmid_pasid[vmid]; in event_interrupt_isr_v9()
|
| H A D | kfd_topology.c | 2105 dev->gpu->dqm->sched_policy != KFD_SCHED_POLICY_NO_HWS) ? in kfd_topology_add_device() 2107 dev->node_props.num_cp_queues = get_cp_queues_num(dev->gpu->dqm); in kfd_topology_add_device() 2357 r = dqm_debugfs_hqds(m, dev->gpu->dqm); in kfd_debugfs_hqds_by_device() 2382 r = pm_debugfs_runlist(m, &dev->gpu->dqm->packet_mgr); in kfd_debugfs_rls_by_device()
|
| H A D | kfd_chardev.c | 604 if (!pdd->dev->dqm->ops.set_cache_memory_policy(pdd->dev->dqm, in kfd_ioctl_set_memory_policy() 920 if (dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS && in kfd_ioctl_set_scratch_backing_va() 1484 if (dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in kfd_ioctl_alloc_queue_gws() 2879 debug_refresh_runlist(pdd->dev->dqm); in runtime_disable()
|
| H A D | kfd_events.c | 1269 if (dev->dqm->detect_hang_count && !pdd->has_reset_queue) in kfd_signal_reset_event() 1272 if (dev->dqm->detect_hang_count) { in kfd_signal_reset_event()
|
| H A D | kfd_mqd_manager_v9.c | 663 uint32_t local_xcc_start = mm->dev->dqm->current_logical_xcc_start++; in init_mqd_v9_4_3()
|