Lines Matching full:process
43 struct amdgpu_mes_process *process, in amdgpu_mes_kernel_doorbell_get() argument
68 struct amdgpu_mes_process *process, in amdgpu_mes_kernel_doorbell_free() argument
254 struct amdgpu_mes_process *process; in amdgpu_mes_create_process() local
257 /* allocate the mes process buffer */ in amdgpu_mes_create_process()
258 process = kzalloc(sizeof(struct amdgpu_mes_process), GFP_KERNEL); in amdgpu_mes_create_process()
259 if (!process) { in amdgpu_mes_create_process()
260 DRM_ERROR("no more memory to create mes process\n"); in amdgpu_mes_create_process()
264 /* allocate the process context bo and map it */ in amdgpu_mes_create_process()
267 &process->proc_ctx_bo, in amdgpu_mes_create_process()
268 &process->proc_ctx_gpu_addr, in amdgpu_mes_create_process()
269 &process->proc_ctx_cpu_ptr); in amdgpu_mes_create_process()
271 DRM_ERROR("failed to allocate process context bo\n"); in amdgpu_mes_create_process()
274 memset(process->proc_ctx_cpu_ptr, 0, AMDGPU_MES_PROC_CTX_SIZE); in amdgpu_mes_create_process()
282 /* add the mes process to idr list */ in amdgpu_mes_create_process()
283 r = idr_alloc(&adev->mes.pasid_idr, process, pasid, pasid + 1, in amdgpu_mes_create_process()
290 INIT_LIST_HEAD(&process->gang_list); in amdgpu_mes_create_process()
291 process->vm = vm; in amdgpu_mes_create_process()
292 process->pasid = pasid; in amdgpu_mes_create_process()
293 process->process_quantum = adev->mes.default_process_quantum; in amdgpu_mes_create_process()
294 process->pd_gpu_addr = amdgpu_bo_gpu_offset(vm->root.bo); in amdgpu_mes_create_process()
301 amdgpu_bo_free_kernel(&process->proc_ctx_bo, in amdgpu_mes_create_process()
302 &process->proc_ctx_gpu_addr, in amdgpu_mes_create_process()
303 &process->proc_ctx_cpu_ptr); in amdgpu_mes_create_process()
305 kfree(process); in amdgpu_mes_create_process()
311 struct amdgpu_mes_process *process; in amdgpu_mes_destroy_process() local
324 process = idr_find(&adev->mes.pasid_idr, pasid); in amdgpu_mes_destroy_process()
325 if (!process) { in amdgpu_mes_destroy_process()
332 list_for_each_entry_safe(gang, tmp1, &process->gang_list, list) { in amdgpu_mes_destroy_process()
353 /* free all memory allocated by the process */ in amdgpu_mes_destroy_process()
354 list_for_each_entry_safe(gang, tmp1, &process->gang_list, list) { in amdgpu_mes_destroy_process()
368 amdgpu_bo_free_kernel(&process->proc_ctx_bo, in amdgpu_mes_destroy_process()
369 &process->proc_ctx_gpu_addr, in amdgpu_mes_destroy_process()
370 &process->proc_ctx_cpu_ptr); in amdgpu_mes_destroy_process()
371 kfree(process); in amdgpu_mes_destroy_process()
378 struct amdgpu_mes_process *process; in amdgpu_mes_add_gang() local
395 DRM_ERROR("failed to allocate process context bo\n"); in amdgpu_mes_add_gang()
406 process = idr_find(&adev->mes.pasid_idr, pasid); in amdgpu_mes_add_gang()
407 if (!process) { in amdgpu_mes_add_gang()
425 gang->process = process; in amdgpu_mes_add_gang()
431 list_add_tail(&gang->list, &process->gang_list); in amdgpu_mes_add_gang()
485 struct amdgpu_mes_process *process; in amdgpu_mes_suspend() local
498 idr_for_each_entry(idp, process, pasid) { in amdgpu_mes_suspend()
499 list_for_each_entry(gang, &process->gang_list, list) { in amdgpu_mes_suspend()
514 struct amdgpu_mes_process *process; in amdgpu_mes_resume() local
527 idr_for_each_entry(idp, process, pasid) { in amdgpu_mes_resume()
528 list_for_each_entry(gang, &process->gang_list, list) { in amdgpu_mes_resume()
656 r = amdgpu_mes_kernel_doorbell_get(adev, gang->process, in amdgpu_mes_add_hw_queue()
666 queue_input.process_id = gang->process->pasid; in amdgpu_mes_add_hw_queue()
669 adev->vm_manager.vram_base_offset + gang->process->pd_gpu_addr - in amdgpu_mes_add_hw_queue()
675 queue_input.process_quantum = gang->process->process_quantum; in amdgpu_mes_add_hw_queue()
676 queue_input.process_context_addr = gang->process->proc_ctx_gpu_addr; in amdgpu_mes_add_hw_queue()
698 gang->process->pasid, gang_id, qprops->queue_type, in amdgpu_mes_add_hw_queue()
714 amdgpu_mes_kernel_doorbell_free(adev, gang->process, in amdgpu_mes_add_hw_queue()
769 amdgpu_mes_kernel_doorbell_free(adev, gang->process, in amdgpu_mes_remove_hw_queue()
1045 pasid = gang->process->pasid; in amdgpu_mes_add_ring()
1092 dma_fence_wait(gang->process->vm->last_update, false); in amdgpu_mes_add_ring()
1310 /* create a gang for the process */ in amdgpu_mes_test_create_gang_and_queues()
1410 DRM_ERROR("failed to create MES process\n"); in amdgpu_mes_self_test()