aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1461-drm-amdkfd-Improve-the-debug-message.patch
blob: ef3569a012398d98304a5d9fe5a5c8480d616e1a (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
From 9cbca74f0c1b3987746a10e05a7362486290972d Mon Sep 17 00:00:00 2001
From: Yong Zhao <yong.zhao@amd.com>
Date: Wed, 15 Jun 2016 17:46:03 -0400
Subject: [PATCH 1461/4131] drm/amdkfd: Improve the debug message

Some misleading debug messages are rectified. Moreover, the size
parameter used when allocating memory is changed to uint64_t from
size_t in order to be consistent with the size type in the alloc
ioctl parameter.

Change-Id: I9aad3ae0c2030d4bcd9a586b2d96e21088cfa636
Signed-off-by: Yong Zhao <yong.zhao@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h       |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 28 ++++++++++++++----------
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c         |  3 ++-
 drivers/gpu/drm/amd/include/kgd_kfd_interface.h  |  2 +-
 4 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
index b7b30af..bbf3404 100755
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
@@ -116,7 +116,7 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
 
 /* GPUVM API */
 int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(
-		struct kgd_dev *kgd, uint64_t va, size_t size,
+		struct kgd_dev *kgd, uint64_t va, uint64_t size,
 		void *vm, struct kgd_mem **mem,
 		uint64_t *offset, void **kptr,
 		struct kfd_process_device *pdd, uint32_t flags);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index 8c5f315..7b119e8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -336,7 +336,7 @@ static int amdgpu_amdkfd_gpuvm_clear_bo(struct amdgpu_device *adev,
 }
 
 static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
-		size_t size, void *vm, struct kgd_mem **mem,
+		uint64_t size, void *vm, struct kgd_mem **mem,
 		uint64_t *offset, void **kptr, struct kfd_process_device *pdd,
 		u32 domain, u64 flags, bool aql_queue,
 		bool readonly, bool execute, bool no_sub, bool userptr)
@@ -346,6 +346,7 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
 	struct amdgpu_bo *bo;
 	uint64_t user_addr = 0;
 	int byte_align;
+	u32 alloc_domain;
 
 	BUG_ON(kgd == NULL);
 	BUG_ON(size == 0);
@@ -376,16 +377,18 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
 	(*mem)->data2.no_substitute = no_sub;
 	(*mem)->data2.aql_queue = aql_queue;
 
-	pr_debug("amdkfd: allocating GTT BO size %lu\n", size);
+	alloc_domain = userptr ? AMDGPU_GEM_DOMAIN_CPU : domain;
+	pr_debug("amdkfd: allocating BO on domain %d with size %llu\n",
+				alloc_domain, size);
 
 	/* Allocate buffer object. Userptr objects need to start out
 	 * in the CPU domain, get moved to GTT when pinned. */
 	ret = amdgpu_bo_create(adev, size, byte_align, false,
-			       userptr ? AMDGPU_GEM_DOMAIN_CPU : domain,
+				alloc_domain,
 			       flags, NULL, NULL, &bo);
 	if (ret != 0) {
-		pr_err("amdkfd: Failed to create BO object on GTT. ret == %d\n",
-				ret);
+		pr_err("amdkfd: failed to create BO on domain %d. ret %d\n",
+				alloc_domain, ret);
 		goto err_bo_create;
 	}
 	bo->kfd_bo = *mem;
@@ -402,13 +405,14 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
 		ret = amdgpu_amdkfd_gpuvm_clear_bo(adev, vm, bo);
 		amdgpu_bo_unreserve(bo);
 		if (ret) {
-			pr_err("amdkfd: Failed to clear BO object on GTT. ret == %d\n",
+			pr_err("amdkfd: failed to clear VRAM BO object. ret %d\n",
 					ret);
 			goto err_bo_clear;
 		}
 	}
 
-	pr_debug("Created BO on GTT with size %zu bytes\n", size);
+	pr_debug("amdkfd: created BO on domain %d with size %llu\n",
+				alloc_domain, size);
 
 	if (userptr) {
 		ret = amdgpu_ttm_tt_set_userptr(bo->tbo.ttm, user_addr,
@@ -816,7 +820,7 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo *bo,
 #define BOOL_TO_STR(b)	(b == true) ? "true" : "false"
 
 int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(
-		struct kgd_dev *kgd, uint64_t va, size_t size,
+		struct kgd_dev *kgd, uint64_t va, uint64_t size,
 		void *vm, struct kgd_mem **mem,
 		uint64_t *offset, void **kptr,
 		struct kfd_process_device *pdd, uint32_t flags)
@@ -915,11 +919,13 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
 	if (unlikely(ret != 0))
 		return ret;
 
+	pr_debug("Releasing BO with VA 0x%llx, size %lu bytes\n",
+					mem->data2.va,
+					mem->data2.bo->tbo.mem.size);
+
 	/* Remove from VM internal data structures */
 	list_for_each_entry_safe(entry, tmp, &mem->data2.bo_va_list, bo_list) {
-		pr_debug("Releasing BO with VA %p, size %lu bytes\n",
-				entry->bo_va,
-				mem->data2.bo->tbo.mem.size);
+		pr_debug("\t remove from amdgpu_bo_va %p\n", entry->bo_va);
 		remove_bo_from_vm((struct amdgpu_device *)entry->kgd_dev,
 				entry);
 	}
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 43d3954..314c178 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -1915,7 +1915,8 @@ static long kfd_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
 	} else
 		goto err_i1;
 
-	dev_dbg(kfd_device, "ioctl cmd 0x%x (#%d), arg 0x%lx\n", cmd, nr, arg);
+	dev_dbg(kfd_device, "ioctl cmd 0x%x (#0x%x), arg 0x%lx\n",
+				cmd, nr, arg);
 
 	process = kfd_get_process(current);
 	if (IS_ERR(process)) {
diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
index 3dca616..b981589 100644
--- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
@@ -293,7 +293,7 @@ struct kfd2kgd_calls {
 	void (*write_vmid_invalidate_request)(struct kgd_dev *kgd,
 					uint8_t vmid);
 	int (*alloc_memory_of_gpu)(struct kgd_dev *kgd, uint64_t va,
-			size_t size, void *vm,
+			uint64_t size, void *vm,
 			struct kgd_mem **mem, uint64_t *offset,
 			void **kptr, struct kfd_process_device *pdd,
 			uint32_t flags);
-- 
2.7.4