diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/mm')
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/bitmap_allocator.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/buddy_allocator.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/lockless_allocator.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/nvgpu_allocator.c | 70 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/mm/page_allocator.c | 2 |
5 files changed, 12 insertions, 70 deletions
diff --git a/drivers/gpu/nvgpu/common/mm/bitmap_allocator.c b/drivers/gpu/nvgpu/common/mm/bitmap_allocator.c index 40ee199a..eae0475a 100644 --- a/drivers/gpu/nvgpu/common/mm/bitmap_allocator.c +++ b/drivers/gpu/nvgpu/common/mm/bitmap_allocator.c | |||
@@ -411,7 +411,9 @@ int nvgpu_bitmap_allocator_init(struct gk20a *g, struct nvgpu_allocator *__a, | |||
411 | wmb(); | 411 | wmb(); |
412 | a->inited = true; | 412 | a->inited = true; |
413 | 413 | ||
414 | #ifdef CONFIG_DEBUG_FS | ||
414 | nvgpu_init_alloc_debug(g, __a); | 415 | nvgpu_init_alloc_debug(g, __a); |
416 | #endif | ||
415 | alloc_dbg(__a, "New allocator: type bitmap\n"); | 417 | alloc_dbg(__a, "New allocator: type bitmap\n"); |
416 | alloc_dbg(__a, " base 0x%llx\n", a->base); | 418 | alloc_dbg(__a, " base 0x%llx\n", a->base); |
417 | alloc_dbg(__a, " bit_offs 0x%llx\n", a->bit_offs); | 419 | alloc_dbg(__a, " bit_offs 0x%llx\n", a->bit_offs); |
diff --git a/drivers/gpu/nvgpu/common/mm/buddy_allocator.c b/drivers/gpu/nvgpu/common/mm/buddy_allocator.c index 34bc51df..0ef94c10 100644 --- a/drivers/gpu/nvgpu/common/mm/buddy_allocator.c +++ b/drivers/gpu/nvgpu/common/mm/buddy_allocator.c | |||
@@ -251,7 +251,9 @@ static void nvgpu_buddy_allocator_destroy(struct nvgpu_allocator *__a) | |||
251 | 251 | ||
252 | alloc_lock(__a); | 252 | alloc_lock(__a); |
253 | 253 | ||
254 | #ifdef CONFIG_DEBUG_FS | ||
254 | nvgpu_fini_alloc_debug(__a); | 255 | nvgpu_fini_alloc_debug(__a); |
256 | #endif | ||
255 | 257 | ||
256 | /* | 258 | /* |
257 | * Free the fixed allocs first. | 259 | * Free the fixed allocs first. |
@@ -1290,7 +1292,9 @@ int __nvgpu_buddy_allocator_init(struct gk20a *g, struct nvgpu_allocator *__a, | |||
1290 | wmb(); | 1292 | wmb(); |
1291 | a->initialized = 1; | 1293 | a->initialized = 1; |
1292 | 1294 | ||
1295 | #ifdef CONFIG_DEBUG_FS | ||
1293 | nvgpu_init_alloc_debug(g, __a); | 1296 | nvgpu_init_alloc_debug(g, __a); |
1297 | #endif | ||
1294 | alloc_dbg(__a, "New allocator: type buddy\n"); | 1298 | alloc_dbg(__a, "New allocator: type buddy\n"); |
1295 | alloc_dbg(__a, " base 0x%llx\n", a->base); | 1299 | alloc_dbg(__a, " base 0x%llx\n", a->base); |
1296 | alloc_dbg(__a, " size 0x%llx\n", a->length); | 1300 | alloc_dbg(__a, " size 0x%llx\n", a->length); |
diff --git a/drivers/gpu/nvgpu/common/mm/lockless_allocator.c b/drivers/gpu/nvgpu/common/mm/lockless_allocator.c index 234ae4a3..944b4b0f 100644 --- a/drivers/gpu/nvgpu/common/mm/lockless_allocator.c +++ b/drivers/gpu/nvgpu/common/mm/lockless_allocator.c | |||
@@ -99,7 +99,9 @@ static void nvgpu_lockless_alloc_destroy(struct nvgpu_allocator *a) | |||
99 | { | 99 | { |
100 | struct nvgpu_lockless_allocator *pa = a->priv; | 100 | struct nvgpu_lockless_allocator *pa = a->priv; |
101 | 101 | ||
102 | #ifdef CONFIG_DEBUG_FS | ||
102 | nvgpu_fini_alloc_debug(a); | 103 | nvgpu_fini_alloc_debug(a); |
104 | #endif | ||
103 | 105 | ||
104 | nvgpu_vfree(a->g, pa->next); | 106 | nvgpu_vfree(a->g, pa->next); |
105 | nvgpu_kfree(nvgpu_alloc_to_gpu(a), pa); | 107 | nvgpu_kfree(nvgpu_alloc_to_gpu(a), pa); |
@@ -191,7 +193,9 @@ int nvgpu_lockless_allocator_init(struct gk20a *g, struct nvgpu_allocator *__a, | |||
191 | wmb(); | 193 | wmb(); |
192 | a->inited = true; | 194 | a->inited = true; |
193 | 195 | ||
196 | #ifdef CONFIG_DEBUG_FS | ||
194 | nvgpu_init_alloc_debug(g, __a); | 197 | nvgpu_init_alloc_debug(g, __a); |
198 | #endif | ||
195 | alloc_dbg(__a, "New allocator: type lockless\n"); | 199 | alloc_dbg(__a, "New allocator: type lockless\n"); |
196 | alloc_dbg(__a, " base 0x%llx\n", a->base); | 200 | alloc_dbg(__a, " base 0x%llx\n", a->base); |
197 | alloc_dbg(__a, " nodes %d\n", a->nr_nodes); | 201 | alloc_dbg(__a, " nodes %d\n", a->nr_nodes); |
diff --git a/drivers/gpu/nvgpu/common/mm/nvgpu_allocator.c b/drivers/gpu/nvgpu/common/mm/nvgpu_allocator.c index 211b353b..1646d2b1 100644 --- a/drivers/gpu/nvgpu/common/mm/nvgpu_allocator.c +++ b/drivers/gpu/nvgpu/common/mm/nvgpu_allocator.c | |||
@@ -20,11 +20,6 @@ | |||
20 | 20 | ||
21 | #include "gk20a/gk20a.h" | 21 | #include "gk20a/gk20a.h" |
22 | #include "gk20a/mm_gk20a.h" | 22 | #include "gk20a/mm_gk20a.h" |
23 | #ifdef CONFIG_DEBUG_FS | ||
24 | #include "gk20a/platform_gk20a.h" | ||
25 | #endif | ||
26 | |||
27 | u32 nvgpu_alloc_tracing_on; | ||
28 | 23 | ||
29 | u64 nvgpu_alloc_length(struct nvgpu_allocator *a) | 24 | u64 nvgpu_alloc_length(struct nvgpu_allocator *a) |
30 | { | 25 | { |
@@ -151,68 +146,3 @@ int __nvgpu_alloc_common_init(struct nvgpu_allocator *a, struct gk20a *g, | |||
151 | 146 | ||
152 | return 0; | 147 | return 0; |
153 | } | 148 | } |
154 | |||
155 | #ifdef CONFIG_DEBUG_FS | ||
156 | void nvgpu_alloc_print_stats(struct nvgpu_allocator *__a, | ||
157 | struct seq_file *s, int lock) | ||
158 | { | ||
159 | __a->ops->print_stats(__a, s, lock); | ||
160 | } | ||
161 | |||
162 | static int __alloc_show(struct seq_file *s, void *unused) | ||
163 | { | ||
164 | struct nvgpu_allocator *a = s->private; | ||
165 | |||
166 | nvgpu_alloc_print_stats(a, s, 1); | ||
167 | |||
168 | return 0; | ||
169 | } | ||
170 | |||
171 | static int __alloc_open(struct inode *inode, struct file *file) | ||
172 | { | ||
173 | return single_open(file, __alloc_show, inode->i_private); | ||
174 | } | ||
175 | |||
176 | static const struct file_operations __alloc_fops = { | ||
177 | .open = __alloc_open, | ||
178 | .read = seq_read, | ||
179 | .llseek = seq_lseek, | ||
180 | .release = single_release, | ||
181 | }; | ||
182 | #endif | ||
183 | |||
184 | void nvgpu_init_alloc_debug(struct gk20a *g, struct nvgpu_allocator *a) | ||
185 | { | ||
186 | #ifdef CONFIG_DEBUG_FS | ||
187 | if (!g->debugfs_allocators) | ||
188 | return; | ||
189 | |||
190 | a->debugfs_entry = debugfs_create_file(a->name, S_IRUGO, | ||
191 | g->debugfs_allocators, | ||
192 | a, &__alloc_fops); | ||
193 | #endif | ||
194 | } | ||
195 | |||
196 | void nvgpu_fini_alloc_debug(struct nvgpu_allocator *a) | ||
197 | { | ||
198 | #ifdef CONFIG_DEBUG_FS | ||
199 | if (!IS_ERR_OR_NULL(a->debugfs_entry)) | ||
200 | debugfs_remove(a->debugfs_entry); | ||
201 | #endif | ||
202 | } | ||
203 | |||
204 | #ifdef CONFIG_DEBUG_FS | ||
205 | void nvgpu_alloc_debugfs_init(struct device *dev) | ||
206 | { | ||
207 | struct gk20a_platform *platform = dev_get_drvdata(dev); | ||
208 | struct dentry *gpu_root = platform->debugfs; | ||
209 | struct gk20a *g = get_gk20a(dev); | ||
210 | |||
211 | g->debugfs_allocators = debugfs_create_dir("allocators", gpu_root); | ||
212 | if (IS_ERR_OR_NULL(g->debugfs_allocators)) | ||
213 | return; | ||
214 | |||
215 | debugfs_create_u32("tracing", 0664, g->debugfs_allocators, | ||
216 | &nvgpu_alloc_tracing_on); | ||
217 | } | ||
218 | #endif | ||
diff --git a/drivers/gpu/nvgpu/common/mm/page_allocator.c b/drivers/gpu/nvgpu/common/mm/page_allocator.c index 14b5da3c..3f4f3706 100644 --- a/drivers/gpu/nvgpu/common/mm/page_allocator.c +++ b/drivers/gpu/nvgpu/common/mm/page_allocator.c | |||
@@ -916,7 +916,9 @@ int nvgpu_page_allocator_init(struct gk20a *g, struct nvgpu_allocator *__a, | |||
916 | if (err) | 916 | if (err) |
917 | goto fail; | 917 | goto fail; |
918 | 918 | ||
919 | #ifdef CONFIG_DEBUG_FS | ||
919 | nvgpu_init_alloc_debug(g, __a); | 920 | nvgpu_init_alloc_debug(g, __a); |
921 | #endif | ||
920 | palloc_dbg(a, "New allocator: type page\n"); | 922 | palloc_dbg(a, "New allocator: type page\n"); |
921 | palloc_dbg(a, " base 0x%llx\n", a->base); | 923 | palloc_dbg(a, " base 0x%llx\n", a->base); |
922 | palloc_dbg(a, " size 0x%llx\n", a->length); | 924 | palloc_dbg(a, " size 0x%llx\n", a->length); |