Lines Matching refs:gang
311 struct amdgpu_mes_gang *gang, *tmp1; in amdgpu_mes_destroy_process() local
331 list_for_each_entry_safe(gang, tmp1, &process->gang_list, list) { in amdgpu_mes_destroy_process()
332 list_for_each_entry_safe(queue, tmp2, &gang->queue_list, list) { in amdgpu_mes_destroy_process()
338 queue_input.gang_context_addr = gang->gang_ctx_gpu_addr; in amdgpu_mes_destroy_process()
346 idr_remove(&adev->mes.gang_id_idr, gang->gang_id); in amdgpu_mes_destroy_process()
353 list_for_each_entry_safe(gang, tmp1, &process->gang_list, list) { in amdgpu_mes_destroy_process()
355 list_for_each_entry_safe(queue, tmp2, &gang->queue_list, list) { in amdgpu_mes_destroy_process()
360 amdgpu_bo_free_kernel(&gang->gang_ctx_bo, in amdgpu_mes_destroy_process()
361 &gang->gang_ctx_gpu_addr, in amdgpu_mes_destroy_process()
362 &gang->gang_ctx_cpu_ptr); in amdgpu_mes_destroy_process()
363 list_del(&gang->list); in amdgpu_mes_destroy_process()
364 kfree(gang); in amdgpu_mes_destroy_process()
378 struct amdgpu_mes_gang *gang; in amdgpu_mes_add_gang() local
382 gang = kzalloc(sizeof(struct amdgpu_mes_gang), GFP_KERNEL); in amdgpu_mes_add_gang()
383 if (!gang) { in amdgpu_mes_add_gang()
390 &gang->gang_ctx_bo, in amdgpu_mes_add_gang()
391 &gang->gang_ctx_gpu_addr, in amdgpu_mes_add_gang()
392 &gang->gang_ctx_cpu_ptr); in amdgpu_mes_add_gang()
397 memset(gang->gang_ctx_cpu_ptr, 0, AMDGPU_MES_GANG_CTX_SIZE); in amdgpu_mes_add_gang()
413 r = idr_alloc(&adev->mes.gang_id_idr, gang, 1, 0, in amdgpu_mes_add_gang()
420 gang->gang_id = r; in amdgpu_mes_add_gang()
423 INIT_LIST_HEAD(&gang->queue_list); in amdgpu_mes_add_gang()
424 gang->process = process; in amdgpu_mes_add_gang()
425 gang->priority = gprops->priority; in amdgpu_mes_add_gang()
426 gang->gang_quantum = gprops->gang_quantum ? in amdgpu_mes_add_gang()
428 gang->global_priority_level = gprops->global_priority_level; in amdgpu_mes_add_gang()
429 gang->inprocess_gang_priority = gprops->inprocess_gang_priority; in amdgpu_mes_add_gang()
430 list_add_tail(&gang->list, &process->gang_list); in amdgpu_mes_add_gang()
437 amdgpu_bo_free_kernel(&gang->gang_ctx_bo, in amdgpu_mes_add_gang()
438 &gang->gang_ctx_gpu_addr, in amdgpu_mes_add_gang()
439 &gang->gang_ctx_cpu_ptr); in amdgpu_mes_add_gang()
441 kfree(gang); in amdgpu_mes_add_gang()
447 struct amdgpu_mes_gang *gang; in amdgpu_mes_remove_gang() local
455 gang = idr_find(&adev->mes.gang_id_idr, gang_id); in amdgpu_mes_remove_gang()
456 if (!gang) { in amdgpu_mes_remove_gang()
462 if (!list_empty(&gang->queue_list)) { in amdgpu_mes_remove_gang()
468 idr_remove(&adev->mes.gang_id_idr, gang->gang_id); in amdgpu_mes_remove_gang()
469 list_del(&gang->list); in amdgpu_mes_remove_gang()
472 amdgpu_bo_free_kernel(&gang->gang_ctx_bo, in amdgpu_mes_remove_gang()
473 &gang->gang_ctx_gpu_addr, in amdgpu_mes_remove_gang()
474 &gang->gang_ctx_cpu_ptr); in amdgpu_mes_remove_gang()
476 kfree(gang); in amdgpu_mes_remove_gang()
601 struct amdgpu_mes_gang *gang; in amdgpu_mes_add_hw_queue() local
626 gang = idr_find(&adev->mes.gang_id_idr, gang_id); in amdgpu_mes_add_hw_queue()
627 if (!gang) { in amdgpu_mes_add_hw_queue()
655 queue_input.process_id = gang->process->pasid; in amdgpu_mes_add_hw_queue()
658 adev->vm_manager.vram_base_offset + gang->process->pd_gpu_addr - in amdgpu_mes_add_hw_queue()
664 queue_input.process_quantum = gang->process->process_quantum; in amdgpu_mes_add_hw_queue()
665 queue_input.process_context_addr = gang->process->proc_ctx_gpu_addr; in amdgpu_mes_add_hw_queue()
666 queue_input.gang_quantum = gang->gang_quantum; in amdgpu_mes_add_hw_queue()
667 queue_input.gang_context_addr = gang->gang_ctx_gpu_addr; in amdgpu_mes_add_hw_queue()
668 queue_input.inprocess_gang_priority = gang->inprocess_gang_priority; in amdgpu_mes_add_hw_queue()
669 queue_input.gang_global_priority_level = gang->global_priority_level; in amdgpu_mes_add_hw_queue()
687 gang->process->pasid, gang_id, qprops->queue_type, in amdgpu_mes_add_hw_queue()
695 queue->gang = gang; in amdgpu_mes_add_hw_queue()
697 list_add_tail(&queue->list, &gang->queue_list); in amdgpu_mes_add_hw_queue()
720 struct amdgpu_mes_gang *gang; in amdgpu_mes_remove_hw_queue() local
747 gang = queue->gang; in amdgpu_mes_remove_hw_queue()
749 queue_input.gang_context_addr = gang->gang_ctx_gpu_addr; in amdgpu_mes_remove_hw_queue()
769 struct amdgpu_mes_gang *gang; in amdgpu_mes_reset_hw_queue() local
794 gang = queue->gang; in amdgpu_mes_reset_hw_queue()
796 queue_input.gang_context_addr = gang->gang_ctx_gpu_addr; in amdgpu_mes_reset_hw_queue()
1139 struct amdgpu_mes_gang *gang; in amdgpu_mes_add_ring() local
1148 gang = idr_find(&adev->mes.gang_id_idr, gang_id); in amdgpu_mes_add_ring()
1149 if (!gang) { in amdgpu_mes_add_ring()
1154 pasid = gang->process->pasid; in amdgpu_mes_add_ring()
1203 dma_fence_wait(gang->process->vm->last_update, false); in amdgpu_mes_add_ring()