aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1622-Hybrid-kfd-adaption-replace-vm-page_directory-with-r.patch
blob: 9829bedff43a5ac94c651ec670aa896f3c7ae164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
From 5b3adecd45017567cc2f3d045f8502f98d4ada85 Mon Sep 17 00:00:00 2001
From: Yong Zhao <Yong.Zhao@amd.com>
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 <Yong.Zhao@amd.com>
---
 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, &param);
 		if (ret) {
-- 
2.7.4