From 5b3adecd45017567cc2f3d045f8502f98d4ada85 Mon Sep 17 00:00:00 2001 From: Yong Zhao Date: Fri, 7 Apr 2017 17:04:14 -0400 Subject: [PATCH 1622/4131] Hybrid-kfd-adaption: replace vm page_directory with root.bo In amd-kfd-staging branch, the corresponding change is embedded in the merged commit, which has two parents. Since we are doing cherry-picks rather than merges, the manual adaption is needed here. Change-Id: I55ff89812aa5cc61e6d2237568ef677882b5f6f9 Signed-off-by: Yong Zhao --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index 7f431e4..5853b59 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -455,7 +455,7 @@ static int amdgpu_amdkfd_bo_invalidate(struct amdgpu_bo *bo) static int validate_pt_pd_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm) { - struct amdgpu_bo *pd = vm->page_directory; + struct amdgpu_bo *pd = vm->root.bo; struct amdgpu_vm_parser param; int ret; @@ -893,7 +893,7 @@ static int unmap_bo_from_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va = entry->bo_va; struct amdgpu_vm *vm = bo_va->vm; struct amdkfd_vm *kvm = container_of(vm, struct amdkfd_vm, base); - struct amdgpu_bo *pd = vm->page_directory; + struct amdgpu_bo *pd = vm->root.bo; /* Remove eviction fence from PD (and thereby from PTs too as they * share the resv. object. Otherwise during PT update job (see @@ -938,13 +938,13 @@ static int update_gpuvm_pte(struct amdgpu_device *adev, bo = bo_va->bo; /* Update the page directory */ - ret = amdgpu_vm_update_page_directory(adev, vm); + ret = amdgpu_vm_update_directories(adev, vm); if (ret != 0) { pr_err("amdgpu_vm_update_page_directory failed\n"); return ret; } - amdgpu_sync_fence(adev, sync, vm->page_directory_fence); + amdgpu_sync_fence(adev, sync, vm->last_dir_update); /* Update the page tables */ ret = amdgpu_vm_bo_update(adev, bo_va, false); @@ -978,7 +978,7 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo *bo = entry->bo_va->bo; struct amdkfd_vm *kvm = container_of(entry->bo_va->vm, struct amdkfd_vm, base); - struct amdgpu_bo *pd = entry->bo_va->vm->page_directory; + struct amdgpu_bo *pd = entry->bo_va->vm->root.bo; /* Remove eviction fence from PD (and thereby from PTs too as they * share the resv. object. This is necessary because new PTs are @@ -1351,11 +1351,11 @@ static u64 get_vm_pd_gpu_offset(void *vm) BUG_ON(avm == NULL); - amdgpu_bo_reserve(avm->page_directory, false); + amdgpu_bo_reserve(avm->root.bo, false); - offset = amdgpu_bo_gpu_offset(avm->page_directory); + offset = amdgpu_bo_gpu_offset(avm->root.bo); - amdgpu_bo_unreserve(avm->page_directory); + amdgpu_bo_unreserve(avm->root.bo); return offset; } @@ -1444,7 +1444,7 @@ void amdgpu_amdkfd_gpuvm_destroy_process_vm(struct kgd_dev *kgd, void *vm) pr_debug("Destroying process vm %p\n", vm); /* Release eviction fence from PD */ - pd = avm->page_directory; + pd = avm->root.bo; amdgpu_bo_reserve(pd, false); amdgpu_bo_fence(pd, NULL, false); amdgpu_bo_unreserve(pd); @@ -2206,7 +2206,7 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info) /* Validate PTs*/ list_for_each_entry(peer_vm, &process_info->vm_list_head, vm_list_node) { - adev = amdgpu_ttm_adev(peer_vm->base.page_directory->tbo.bdev); + adev = amdgpu_ttm_adev(peer_vm->base.root.bo->tbo.bdev); ret = amdgpu_vm_validate_pt_bos(adev, &peer_vm->base, amdgpu_amdkfd_validate, ¶m); if (ret) { -- 2.7.4