process_info 63 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h struct amdkfd_process_info *process_info; process_info 199 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h void **vm, void **process_info, process_info 203 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h void **vm, void **process_info, process_info 224 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h int amdgpu_amdkfd_gpuvm_restore_process_bos(void *process_info, process_info 444 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info, process_info 453 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 455 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_add_tail(&entry->head, &process_info->userptr_valid_list); process_info 457 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_add_tail(&entry->head, &process_info->kfd_bo_list); process_info 458 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 462 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info) process_info 467 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 469 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 487 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = mem->process_info; process_info 492 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 530 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 789 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c static int process_validate_vms(struct amdkfd_process_info *process_info) process_info 794 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(peer_vm, &process_info->vm_list_head, process_info 804 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c static int process_sync_pds_resv(struct amdkfd_process_info *process_info, process_info 810 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(peer_vm, &process_info->vm_list_head, process_info 824 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c static int process_update_pds(struct amdkfd_process_info *process_info, process_info 830 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(peer_vm, &process_info->vm_list_head, process_info 840 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info, process_info 846 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (!*process_info) { process_info 871 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c *process_info = info; process_info 875 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c vm->process_info = *process_info; process_info 894 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &vm->process_info->eviction_fence->base, true); process_info 898 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&vm->process_info->lock); process_info 900 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &(vm->process_info->vm_list_head)); process_info 901 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c vm->process_info->n_vms++; process_info 902 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&vm->process_info->lock); process_info 911 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c vm->process_info = NULL; process_info 917 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c *process_info = NULL; process_info 927 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c void **vm, void **process_info, process_info 946 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = init_kfd_vm(new_vm, process_info, ef); process_info 963 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c void **vm, void **process_info, process_info 973 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (avm->process_info) process_info 982 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = init_kfd_vm(avm, process_info, ef); process_info 994 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = vm->process_info; process_info 997 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (!process_info) process_info 1006 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 1007 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->n_vms--; process_info 1009 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 1012 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (!process_info->n_vms) { process_info 1013 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c WARN_ON(!list_empty(&process_info->kfd_bo_list)); process_info 1014 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c WARN_ON(!list_empty(&process_info->userptr_valid_list)); process_info 1015 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c WARN_ON(!list_empty(&process_info->userptr_inval_list)); process_info 1017 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c dma_fence_put(&process_info->eviction_fence->base); process_info 1018 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c cancel_delayed_work_sync(&process_info->restore_userptr_work); process_info 1019 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c put_pid(process_info->pid); process_info 1020 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_destroy(&process_info->lock); process_info 1021 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c kfree(process_info); process_info 1194 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c (*mem)->process_info = avm->process_info; process_info 1195 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c add_kgd_mem_to_kfd_bo_list(*mem, avm->process_info, user_addr); process_info 1209 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c remove_kgd_mem_from_kfd_bo_list(*mem, avm->process_info); process_info 1229 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = mem->process_info; process_info 1255 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 1257 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 1268 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->eviction_fence); process_info 1323 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&mem->process_info->lock); process_info 1416 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &avm->process_info->eviction_fence->base, process_info 1431 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&mem->process_info->lock); process_info 1440 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = process_info 1441 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ((struct amdgpu_vm *)vm)->process_info; process_info 1495 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->eviction_fence); process_info 1535 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&mem->process_info->lock); process_info 1556 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c bo, mem->process_info->eviction_fence); process_info 1564 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&mem->process_info->lock); process_info 1572 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&mem->process_info->lock); process_info 1639 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c (*mem)->process_info = avm->process_info; process_info 1640 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c add_kgd_mem_to_kfd_bo_list(*mem, avm->process_info, false); process_info 1660 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = mem->process_info; process_info 1665 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c evicted_bos = atomic_inc_return(&process_info->evicted_bos); process_info 1671 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c schedule_delayed_work(&process_info->restore_userptr_work, process_info 1684 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c static int update_invalid_user_pages(struct amdkfd_process_info *process_info, process_info 1696 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &process_info->userptr_valid_list, process_info 1715 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &process_info->userptr_inval_list); process_info 1718 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (list_empty(&process_info->userptr_inval_list)) process_info 1722 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(mem, &process_info->userptr_inval_list, process_info 1761 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c static int validate_invalid_user_pages(struct amdkfd_process_info *process_info) process_info 1774 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c pd_bo_list_entries = kcalloc(process_info->n_vms, process_info 1788 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(peer_vm, &process_info->vm_list_head, process_info 1793 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(mem, &process_info->userptr_inval_list, process_info 1809 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = process_validate_vms(process_info); process_info 1815 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &process_info->userptr_inval_list, process_info 1832 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &process_info->userptr_valid_list); process_info 1857 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = process_update_pds(process_info, &sync); process_info 1879 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = process_info 1886 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c evicted_bos = atomic_read(&process_info->evicted_bos); process_info 1891 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c usertask = get_pid_task(process_info->pid, PIDTYPE_PID); process_info 1900 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 1902 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (update_invalid_user_pages(process_info, mm)) process_info 1908 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (!list_empty(&process_info->userptr_inval_list)) { process_info 1909 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (atomic_read(&process_info->evicted_bos) != evicted_bos) process_info 1912 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (validate_invalid_user_pages(process_info)) process_info 1920 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c if (atomic_cmpxchg(&process_info->evicted_bos, evicted_bos, 0) != process_info 1932 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 1938 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c schedule_delayed_work(&process_info->restore_userptr_work, process_info 1963 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = info; process_info 1976 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c pd_bo_list = kcalloc(process_info->n_vms, process_info 1983 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&process_info->lock); process_info 1984 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(peer_vm, &process_info->vm_list_head, process_info 1991 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(mem, &process_info->kfd_bo_list, process_info 2009 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = process_validate_vms(process_info); process_info 2013 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = process_sync_pds_resv(process_info, &sync_obj); process_info 2020 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(mem, &process_info->kfd_bo_list, process_info 2051 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ret = process_update_pds(process_info, &sync_obj); process_info 2065 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->eviction_fence->base.context, process_info 2066 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->eviction_fence->mm); process_info 2072 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c dma_fence_put(&process_info->eviction_fence->base); process_info 2073 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->eviction_fence = new_fence; process_info 2077 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(mem, &process_info->kfd_bo_list, process_info 2080 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c &process_info->eviction_fence->base, true); process_info 2083 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c list_for_each_entry(peer_vm, &process_info->vm_list_head, process_info 2087 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_bo_fence(bo, &process_info->eviction_fence->base, true); process_info 2094 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&process_info->lock); process_info 2101 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = (struct amdkfd_process_info *)info; process_info 2115 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c (*mem)->process_info = process_info; process_info 2116 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c add_kgd_mem_to_kfd_bo_list(*mem, process_info, false); process_info 2121 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_lock(&(*mem)->process_info->lock); process_info 2140 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_bo_fence(gws_bo, &process_info->eviction_fence->base, true); process_info 2142 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&(*mem)->process_info->lock); process_info 2150 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c mutex_unlock(&(*mem)->process_info->lock); process_info 2152 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c remove_kgd_mem_from_kfd_bo_list(*mem, process_info); process_info 2163 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c struct amdkfd_process_info *process_info = (struct amdkfd_process_info *)info; process_info 2170 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c remove_kgd_mem_from_kfd_bo_list(kgd_mem, process_info); process_info 2179 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c process_info->eviction_fence); process_info 277 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h struct amdkfd_process_info *process_info; process_info 1549 drivers/hv/hv_balloon.c process_info(dm, (struct dm_info_msg *)dm_msg);